内容简介
Docker和容器化计算技术一直在不断创新和发展。十多年前,本书首版面市,见证了 Docker技术的发展,为了让读者更深入地理解和掌握新的容器技术,第4版中补充了一些新特性(如高级构建功能),同时也摒弃了一些过时的工具和项目(如Docker Machine项目)。
全书分为四部分:第一部分简要介绍 Docker 的基础知识和常用命令;第二部分详述在各种典型场景中如何运用容器技术,包括操作系统、Web服务、数据库、分布式处理和大数据、编程开发以及容器云等;第三部分深入讲解高级容器技巧,包括实现原理、私有仓库、安全防护、高级网络功能和网络插件;第四部分展示与容器相关的开源项目,包括Etcd、Compose、Swarm、Kubernetes等。这些项目让使用容器技术变得更加有效率,使容器平台更加稳定和智能,共同构建了一个繁荣的容器化计算生态。
目录
目 录?Contents
前言
第一部分 基础入门
第1章 初识Docker与容器 3
1.1 什么是Docker 3
1.2 为什么使用Docker 5
1.3 Docker与虚拟化 7
1.4 本章小结 8
第2章 核心概念与安装配置 9
2.1 核心概念 9
2.2 安装Docker引擎 11
2.2.1 Docker引擎版本 11
2.2.2 在Linux环境下安装Docker
引擎 12
2.3 安装Docker桌面版 13
2.3.1 在macOS环境下安装Docker
桌面版 14
2.3.2 在Windows环境下安装
Docker桌面版 16
2.4 配置Docker服务 17
2.5 推荐实践环境 18
2.6 本章小结 18
第3章 使用Docker镜像 19
3.1 获取镜像 19
3.2 查看镜像信息 21
3.3 搜寻镜像 24
3.4 删除和清理镜像 24
3.5 创建镜像 26
3.6 导出和载入镜像 28
3.7 上传镜像 29
3.8 本章小结 29
第4章 操作Docker容器 30
4.1 创建容器 30
4.1.1 新建容器 30
4.1.2 启动容器 34
4.1.3 新建并启动容器 34
4.1.4 守护态运行 35
4.1.5 查看容器输出 36
4.2 停止容器 36
4.3 进入容器 37
4.4 删除容器 39
4.5 导入和导出容器 39
4.6 查看容器 41
4.7 其他容器命令 42
4.8 本章小结 43
第5章 访问Docker仓库 45
5.1 Docker Hub公共镜像市场 45
5.2 搭建本地私有仓库 49
5.3 本章小结 51
第6章 Docker数据管理 52
6.1 数据卷 52
6.2 数据卷容器 54
6.3 利用数据卷容器迁移数据 55
6.4 本章小结 56
第7章 端口映射与容器互联 57
7.1 通过端口映射实现容器访问 57
7.2 通过互联机制实现便捷互访 58
7.3 本章小结 61
第8章 使用Dockerfile创建镜像 62
8.1 基本结构 62
8.2 指令说明 65
8.2.1 基本格式 65
8.2.2 解析器指令 66
8.2.3 环境变量替换 68
8.2.4 .dockerignore文件 69
8.2.5 FROM 70
8.2.6 RUN 71
8.2.7 RUN --mount 71
8.2.8 RUN --network 74
8.2.9 CMD 75
8.2.10 LABEL 76
8.2.11 EXPOSE 76
8.2.12 ENV 77
8.2.13 ADD 78
8.2.14 COPY 81
8.2.15 COPY/ADD --link 82
8.2.16 ENTRYPOINT 83
8.2.17 VOLUME 87
8.2.18 关于指定卷的注意事项 88
8.2.19 USER 88
8.2.20 WORKDIR 89
8.2.21 ARG 89
8.2.22 ONBUILD 93
8.2.23 STOPSIGNAL停止
信号 94
8.2.24 HEALTHCHECK 94
8.2.25 SHELL 95
8.3 创建镜像 97
8.3.1 命令选项 97
8.3.2 选择父镜像 98
8.3.3 使用.dockerignore文件 99
8.3.4 多步骤创建 99
8.4 最佳实践 100
8.5 本章小结 101
第9章 高级镜像构建 102
9.1 使用构建器 102
9.1.1 创建构建器 103
9.1.2 列出构建器 103
9.1.3 使用Remote远程构建套件
驱动 104
9.1.4 构建器磁盘清理 106
9.2 多步骤构建 107
9.2.1 单步骤构建的问题 107
9.2.2 使用多步骤构建 107
9.3 多平台镜像 109
9.4 使用GitHub Action 111
9.5 本章小结 116
第二部分 实战案例
第10章 操作系统 119
10.1 BusyBox 119
10.2 Alpine 120
10.3 Ubuntu 121
10.4 本章小结 123
第11章 Web服务与应用 124
11.1 Apache 124
11.2 Nginx 129
11.3 Tomcat 134
11.4 Jetty 135
11.5 LAMP 136
11.6 CMS 139
11.6.1 WordPress 139
11.6.2 Ghost 140
11.7 本章小结 141
第12章 数据库应用 142
12.1 MySQL 142
12.2 MongoDB 145
12.3 Redis 152
12.4 Memcached 154
12.5 本章小结 157
第13章 分布式处理与大数据
平台 158
13.1 RabbitMQ 158
13.2 Hadoop 161
13.3 Spark 164
13.4 Storm 166
13.5 Elasticsearch 169
13.6 本章小结 172
前言/序言
前 言
Docker及其代表的容器化计算技术一直在不断创新和发展。本书的首版问世于Docker 技术诞生之初。自那时起,后续版本有幸陪伴着容器技术的逐步成熟,见证了容器技术极大地降低了人们使用信息技术的门槛,显著推动了信息行业的演进。
过去十年无疑是信息科技发展的黄金时期。大数据和物联网技术的进步,使人们能够以前所未有的方式理解和影响现实世界。区块链技术的出现,提供了一种全新的信任机制,为分布式金融网络铺就了道路。人工智能技术,尤其是大模型的普及,为人们的生活带来了难以想象的便利。在所有这些重大的变革中,容器技术都扮演着重要角色,为这些变革提供了坚实的计算平台支持。
为了让读者快速掌握最新的容器技术,本书重点围绕最新的容器技术,补充讲解了新特性(包括高级构建、新的编排工具、增强的安全机制和性能优化等),同时摒弃了不再活跃的工具和项目(如 Docker Machine和Mesos 项目)。
全书分为四部分:第一部分简要介绍 Docker 的基础知识和常用命令;第二部分详述在各种典型场景中如何运用容器技术,包括操作系统、Web 服务、数据库、分布式处理和大数据、编程开发以及容器云等;第三部分深入讲解高级容器技巧,包括实现原理、私有仓库、安全防护、高级网络功能和网络插件;第四部分展示与容器相关的开源项目,包括Etcd、Compose、Swarm、Kubernetes等。这些项目让使用容器技术变得更加有效率,使容器平台更加稳定和智能,共同构建了一个繁荣的容器计算生态。
在此由衷感谢所有支持本书的读者和同人。众多宝贵的建议和反馈,让本书得以不断完善和提高。多年的畅销记录,是对本书的最大肯定和鼓励。
愿信息技术的进步,使世界变得更加美好!



















