《Docker技术入门与实战(第3版)》
容器技术系列
Docker技术入门与实战
第3版
杨保华 戴王剑 曹亚仑 编著
Preface第3版前言
Docker 诞生于云计算第一个十年的尾巴上。眨眼间,它所代表的现代容器技术,已经占据了云计算的半壁江山。
过去十年里,信息科技依然保持了飞跃式的发展:深度学习的突破给人类摆脱重复劳动带来曙光;分布式账本的崛起为赛博空间奠定信任基础;物联网的成熟让整个星球都将变得更加智慧……这一切都离不开底层计算技术的持续演化,特别是新一代容器化计算平台,为经典计算结构释放出了巨大的潜力。
而计算科技的进步,一直以来就与开源技术和开放文化息息相关。无论是早期的 Unix/Linux 操作系统,还是后来包括 Docker 在内的诸多应用软件,都积极推动了整个信息产业的发展。当下正是新一波科技浪潮来临前的关键时期,掌握最前沿的科技成果,学习最先进的开源工具,对于推动我国乃至全球信息产业的进步都至关重要。
信息科技是全人类的宝贵财富,也是现代文明的基础支撑。每一个信息行业从业人员都应该意识到,持续推动科技创新和文明进步,是时代赋予的重要责任。
Docker 容器技术臻于成熟后,社区涌现出众多优秀的开源项目。这些项目或让计算更加高效便捷,或让平台更加稳定智能,共同构建了繁荣的容器计算生态。围绕这些最新进展,本书第3版重点介绍了容器核心技术的最新特性,让读者可以更好地掌握和使用最先进的容器技术。
出版之际,本书开源版本的访问量已经突破一千万,真诚感谢近百位同仁对图书内容的积极建议和反馈。
祝愿世界更加美好,祝愿人人都能快乐幸福!
杨保华
2018年7月于北京
目 录Contents
第3版前言
第一部分 基础入门
第4章 操作Docker容器 39
4.1 创建容器 39
4.2 停止容器 44
4.3 进入容器 46
4.4 删除容器 47
4.5 导入和导出容器 48
4.6 查看容器 49
4.7 其他容器命令 50
4.8 本章小结 52
第5章 访问 Docker 仓库 53
5.1 Docker Hub 公共镜像市场 53
5.2 第三方镜像市场 55
5.3 搭建本地私有仓库 56
5.4 本章小结 58
第6章 Docker数据管理 59
6.1 数据卷 59
6.2 数据卷容器 60
6.3 利用数据卷容器来迁移数据 62
6.4 本章小结 62
第7章 端口映射与容器互联 63
7.1 端口映射实现容器访问 63
7.2 互联机制实现便捷互访 64
7.3 本章小结 67
第8章 使用Dockerfile创建镜像 68
8.1 基本结构 68
8.2 指令说明 70
8.2.1 配置指令 71
8.2.2 操作指令 74
8.3 创建镜像 75
8.3.1 命令选项 76
8.3.2 选择父镜像 77
8.3.3 使用.dockerignore文件 77
8.3.4 多步骤创建 78
8.4 最佳实践 79
8.5 本章小结 80
第二部分 实战案例
第9章 操作系统 83
9.1 BusyBox 83
9.2 Alpine 85
9.3 Debian/Ubuntu 86
9.4 CentOS/Fedora 88
9.5 本章小结 89
第10章 为镜像添加SSH服务 90
10.1 基于commit命令创建 90
10.2 使用Dockerfile创建 93
10.3 本章小结 95
第11章 Web服务与应用 96
11.1 Apache 96
11.2 Nginx 100
11.3 Tomcat 104
11.4 Jetty 108
11.5 LAMP 109
11.6 持续开发与管理 111
11.7 本章小结 114
第12章 数据库应用 115
12.1 MySQL 115
12.2 Oracle Database XE 117
12.3 MongoDB 118
12.4 Redis 124
12.5 Cassandra 126
12.6 本章小结 129
第13章 分布式处理与大数据平台 130
13.1 Hadoop 130
13.2 Spark 133
13.3 Storm 136
13.4 Elasticsearch 140
13.5 本章小结 141
第14章 编程开发 142
14.1 C/C++ 142
14.2 Java 146
14.3 Python 149
14.3.1 使用Python官方镜像 150
14.3.2 使用PyPy 151
14.3.3 使用 Flask 151
14.3.4 相关资源 154
14.4 JavaScript 154
14.4.1 使用Node.js 154
14.4.2 相关资源 158
14.5 Go 158
14.6 本章小结 161
第15章 容器与云服务 162
15.1 公有云容器服务 162
15.1.1 AWS 162
15.1.2 Google Cloud Platform 163
15.1.3 Azure 164
15.1.4 腾讯云 165
15.1.5 阿里云 165
15.1.6 华为云 166
15.1.7 UCloud 167
15.2 容器云服务 168
15.3 阿里云容器服务 172
15.4 时速云介绍 174
15.5 本章小结 175
第16章 容器实战思考 176
16.1 Docker 为什么会成功 176
16.2 研发人员该如何看待容器 177
16.3 容器化开发模式 178
16.4 容器与生产环境 180
16.5 本章小结 182
第三部分 进阶技能
第17章 核心实现技术 185
17.1 基本架构 185
17.2 命名空间 187
17.3 控制组 191
17.4 联合文件系统 193
17.5 Linux网络虚拟化 195
17.6 本章小结 197
第18章 配置私有仓库 199
18.1 安装Docker Registry 199
18.2 配置TLS证书 201
18.3 管理访问权限 202
18.4 配置Registry 205
18.5 批量管理镜像 211
18.6 使用通知系统 214
18.7 本章小结 217
第19章 安全防护与配置 218
19.1 命名空间隔离的安全 218
19.2 控制组资源控制的安全 219
19.3 内核能力机制 219
19.4 Docker服务端的防护 221
19.5 更多安全特性的使用 221
19.6 使用第三方检测工具 222
19.6.1 Docker Bench 222
19.6.2 clair 223
19.7 本章小结 224
第20章 高级网络功能 225
20.1 启动与配置参数 225
20.2 配置容器DNS和主机名 227
20.3 容器访问控制 228
20.4 映射容器端口到宿主主机的实现 229
20.5 配置容器网桥 231
20.6 自定义网桥 232
20.7 使用OpenvSwitch网桥 233
20.8 创建一个点到点连接 235
20.9 本章小结 236
第21章 libnetwork插件化网络功能 237
21.1 容器网络模型 237
21.2 Docker网络命令 238
21.3 构建跨主机容器网络 241
21.4 本章小结 243
第四部分 开源项目
第22章 Etcd—高可用的键值数据库 247
22.1 Etcd简介 247
22.2 安装和使用Etcd 248
22.3 使用客户端命令 253
22.3.1 数据类操作 255
22.3.2 非数据类操作 258
22.4 Etcd集群管理 260
22.4.1 构建集群 260
22.4.2 集群参数配置 263
22.5 本章小结 264
第23章 Docker三剑客之Machine 265
23.1 Machine简介 265
23.2 安装Machine 265
23.3 使用Machine 266
23.4 Machine命令 268
23.5 本章小结 272
第24章 Docker三剑客之Compose 273
24.1 Compose简介 273
24.2 安装与卸载 274
24.3 Compose模板文件 277
24.4 Compose命令说明 292
24.5 Compose环境变量 299
24.6 Compose应用案例一:Web负载均衡 300
24.7 Compose应用案例二:大数据Spark集群 304
24.8 本章小结 309
第25章 Docker三剑客之Swarm 310
25.1 Swarm简介 310
25.2 基本概念 311
25.3 使用Swarm 313
25.4 使用服务命令 316
25.5 本章小结 319
第26章 Mesos—优秀的集群资源调度平台 321
26.1 简介 321
26.2 Mesos安装与使用 322
26.3 原理与架构 330
26.3.1 架构 330
26.3.2 基本单元 331
26.3.3 调度 331
26.3.4 高可用性 332
26.4 Mesos配置解析 333
26.4.1 通用项 333
26.4.2 master专属配置项 333
26.4.3 slave专属配置项 335
26.5 日志与监控 338
26.6 常见应用框架 340
26.7 本章小结 341
第27章 Kubernetes—生产级容器集群平台 343
27.1 简介 343
27.2 核心概念 345
27.3 资源抽象对象 348
27.3.1 容器组 348
27.3.2 服务 349
27.3.3 存储卷 350
27.4 控制器抽象对象 351
27.5 其他抽象对象 353
27.6 快速体验 355
27.7 重要组件 359
27.7.1 Etcd 360
27.7.2 kube-apiserver 360
27.7.3 kube-scheduler 361
27.7.4 kube-controller-manager 362
27.7.5 kubelet 363
27.7.6 kube-proxy 364
27.8 使用kubectl 365
27.8.1 获取kubectl 365
27.8.2 命令格式 366
27.8.3 全局参数 367
27.8.4 通用子命令 369
27.9 网络设计 372
27.10 本章小结 374
第28章 其他相关项目 375
28.1 持续集成 375
28.2 容器管理 377
28.2.1 Portainer 377
28.2.2 Panamax 378
28.2.3 Seagull 378
28.3 编程开发 380
28.4 网络支持 381
28.4.1 Pipework 381
28.4.2 Flannel项目 382
28.4.3 Weave Net项目 382
28.4.4 Calico项目 383
28.5 日志处理 383
28.6 服务代理 385
28.7 标准与规范 389
28.8 其他项目 392
28.9 本章小结 396
附录
附录A 常见问题总结 398
附录B Docker命令查询 404
附录C 参考资源链接 411
- 点赞
- 收藏
- 关注作者
评论(0)