《Docker技术入门与实战 第4版》阅读笔记 1 📅 2026/8/17 18:36:48 《Docker技术入门与实战 第4版》阅读笔记 1参考资料第一部分 基础入门第1章 初识 Docker 与容器跟传统通过硬件模拟和操作系统软件实现的虚拟化相比容器技术更为优雅它充分利用了操作系统本身的机制和特性实现了轻量级虚拟化性能远超传统虚拟机。1.1 什么是 DockerDocker 是一个基于 Go 语言实现的开源容器项目通过将应用和运行环境打包到 Docker 容器中确保了应用在不同环境中的一致性和稳定性。相较于虚拟机模拟一整套操作系统以及在系统上运行的应用Docker 容器是运行的应用加所需的运行环境。Docker 容器通过共享操作系统内核有效降低了系统开销并提高了资源利用率。Docker 已经在云计算和 DevOps 等领域得到广泛的应用带来了高效的应用部署和运维方式。1.Docker 开源项目背景Docker 是一个基于 Go 语言实现的开源容器项目。它诞生于 2013 年初最初由 dotCloud 公司发起。随着项目的成功dotCloud 公司迅速发展壮大于 2013 年年底更名为 Docker Inc专注于 Docker 相关技术和产品的开发。Docker 项目于 2013 年 3 月 25 日加入 Linux 基金会核心代码遵循 Apache2.0 协议。开源代码主要通过 GitHub 仓库进行维护。如今主流操作系统如 Linux 各大发行版、macOS 和 Windows均已支持 Docker。此外各大云服务提供商纷纷推出基于 Docker 的服务。Docker 的愿景是实现 “BuildShip and Run Any AppAnywhere”即将应用和环境打包到容器中 “一次封装到处运行”。Docker 的核心优势在于其标准化、轻量化和可移植性。通过将应用和环境打包到容器中Docker 确保了应用在不同环境中的一致性和稳定性。2.Linux 容器技术—巨人的肩膀Docker 诞生之前前容器技术已经发展了很久其中 Linux 容器 (Linux ContainerLXC) 技术已经完成了容器技术实用化的大半历程。3.从 Linux 容器 到 Docker在 LXC 的基础上Docker 进一步优化了容器的使用体验。首先Docker提供了各种容器管理工具让用户无须关注底层操作可以更简单地管理容器。其次Docker 通过镜像机制降低了迁移难度改善了用户体验。在实现方面早期的 Docker 代码是直接基于 LXC 的。从 0.9 版本开始Docker 开发了 libcontainer 项目取代了 LXC 的实现。可以将 Docker 容器理解为一种轻量级的沙盒。每个容器内运行着一个应用不同的容器相互隔离容器之间还可以通过网络互相通信。容器的创建和停止都十分方便与创建和停止原生应用类似此外容器对系统资源的需求远低于传统虚拟机。很多时候甚至可以直接将容器视为应用本身而不会出现任何问题。Docker 技术已经在云计算和 DevOps 等领域得到广泛的应用带来了高效的应用部署、运维和管理方式。1.2 为什么使用 Docker1.Docker 的好处在云时代分布式应用需要一种新型的构建方式具备快速分发和部署的特点而这正是 Docker 的最大优势。举一个简单的例子。假设用户想要搭建一个网站。按照传统做法首先需要安装 Tomcat、MySQL 及其运行所需的依赖环境然后对它们进行配置。在执行大量操作后还需要进行功能测试以确认网站正常运行如果出现问题则需要花费更多的时间排查。可以想象应用数量的增多会使事情变得更加复杂。更麻烦的是一旦需要迁移服务器需要对应用重新进行部署和调试。这些“体力活”降低了工作效率。问题的根源在于应用直接运行在底层操作系统上无法保证在不同环境中的一致性。Docker 通过将应用和环境打包到容器中从而解耦应用与底层操作系统。在迁移时只需在新服务器上启动容器即可这大大节省时间并降低部署过程中出现问题的风险。2.Docker 在开发和运维中的优势Docker 在开发和运维过程中具有以下几方面的优势交付和部署。使用 Docker开发人员可以通过镜像构建一套标准的运行环境。运维人员可以直接使用镜像来部署应用确保应用的运行环境相同。资源利用。Docker 容器是内核级的虚拟化可以实现更高的性能同时对资源的需求很低。与传统虚拟机方式相比Docker 的性能更高。迁移和扩展。Docker 容器几乎可以在任意平台上运行包括物理机、虚拟机、公有云、私有云等。这种兼容性使用户能够轻松地在不同平台之间迁移应用。容器管理。仅需对 Dockerfile 的配置进行修改就可以替代过去烦琐的工作。实现自动化且高效的容器管理。3.Docker 与虚拟机比较作为一种轻量级的虚拟化方式Docker 在运行应用时相较传统虚拟机具有显著优势Docker 容器启动和停止速度非常快可以在秒级实现远快于传统虚拟机方式需要数分钟。Docker 容器对系统资源需求较少一台主机上可以同时运行数千个 Docker 容器。Docker 利用类似 Git 理念的操作便于用户获取、分发和更新应用镜像。Docker 通过 Dockerfile 和 Compose 模板实现的自动化创建和部署机制可以提升工作效率并实现流程标准化。相较于传统虚拟机方式每个虚拟机需要单独分配独占的内存、磁盘等资源。Docker 容器在运行应用时既保证了应用性能又尽可能降低了系统开销。1.3 Docker 与虚拟化虚拟化是一种资源抽象和管理技术它将计算机的各种实体资源如处理器、存储器、网络等进行抽象将其重新隔离为多个独立的系统资源以便于在同一主机上运行多个操作系统或应用。虚拟化的核心目标是提高系统资源的利用率降低成本简化管理并提高容错和灾难恢复能力。Docker 采用操作系统级虚拟化技术。容器通过共享相同的操作系统内核有效降低了系统开销并提高了资源利用率。传统方式是在硬件层面实现虚拟化需要有额外的虚拟机管理程序和虚拟机操作系统层。Docker 容器是在操作系统层面上实现虚拟化直接复用本地主机的操作系统因此更加轻量级。1.4 本章小结开发人员、测试人员以及运维人员都应尽快掌握 Docker提高团队的效率。第2章 核心概念与安装配置2.1 核心概念Docker 的三大核心概念镜像、容器和仓库。1.Docker 镜像Docker 镜像包含运行某个应用所需的所有内容如程序、运行环境等。镜像可以被视为创建容器的模板。镜像由多个只读层组成相同的层可以在多个镜像中共享从而实现高效存储和传输因为它们仅需要下载一次。2.Docker 容器Docker 容器可被视为一个轻量级的沙箱它允许应用在隔离的环境中运行。Docker 利用容器技术来实现应用程序的隔离和高效部署。容器是基于镜像创建的运行实例它们可以被启动、停止和删除。容器彼此相互隔离互不干扰确保了应用程序之间的安全性和独立性。可以将容器理解为一个包含了简化版 Linux 系统环境以及应用程序的盒子。通过使用容器可以快速在不同环境中部署和管理应用。镜像是只读的。从镜像创建容器时会在镜像的最上层新建一个可写层。3.Docker 仓库Docker 仓库可分为公开仓库和私有仓库两种形式。最大的公开仓库是由官方提供的 Docker Hub其中包含了大量的镜像供用户下载和使用。在国内一些云服务提供商如腾讯云、阿里云等提供了仓库的镜像源以确保稳定、快速的国内访问体验。对于那些不希望公开分享自己镜像文件的用户Docker 也支持在本地网络内部署仅供自己访问的私有仓库。Docker 仓库在设计上借鉴了 Git 仓库当用户创建自己的镜像后可以使用 push 命令将其上传到指定的仓库。这样在下次需要在另一台机器上使用该镜像时用户只需从仓库中拉取下载即可。这种方式简化了镜像的共享和部署流程提高了工作效率。2.2 安装 Docker 引擎Docker 引擎是用于构建、运行和管理容器化应用的软件平台。Docker 引擎由以下三个主要部分组成Docker 服务器一个长期运行的后台进程负责处理 Docker API 请求并管理 Docker 对象如镜像、容器、网络和存储卷等。RESTful API提供与 Docker 服务器进行交互的接口。用户和应用程序可以通过发送 RESTful 请求来执行 Docker 操作管理容器。客户端用户可以在终端中输入各种命令CLI 将这些命令转换为 RESTAPI 请求并发送给 Docker 服务器以执行相应操作。2.2.1 Docker 引擎版本Docker 引擎目前分为两个版本社区版本 (Community EditionCE) 和 企业版本 (Enterprise EditionEE)。社区版本免费且开源由开源社区进行支持和维护主要面向开发者和小型团队。它提供了基本的 Docker 功能。企业版本按照订阅模式收费由 Docker 公司进行商业支持针对大型企业和生产环境进行了优化。通常情况下个人或小型团队用户可以使用社区版本满足大部分需求对于大型企业或更严格的生产需求可以购买企业版本服务获得更安全和更稳定的体验。社区版本每个季度三、六、九、十二月份会发行一次稳定 (Stable) 版本。版本号命名格式为“年份.月份”如 2023 年 10 月发布的版本号为V23.10。本书选用 Docker V23 版本使用的操作系统环境是 Ubuntu 24.04。2.2.2 在 Linux 环境下安装 Docker 引擎2.3 安装 Docker 桌面版2.3.1 在 macOS 环境下安装 Docker 桌面版2.3.2 在 Windows 环境下安装 Docker 桌面版2.4 配置 Docker 服务2.5 推荐实践环境上面的安装 Docker 引擎的方式受限于国内的网络环境全部不推荐推荐直接使用阿里云服务器学习 Docker 的使用。2.6 本章小结本章介绍了 Docker 的三大核心概念镜像、容器和仓库以及如何安装和配置 Docker 引擎服务。在后续章节笔者将具体讲解围绕这三大核心概念的 Docker 操作命令。