Docker技术入门与实战(第4版)

本网站不提供下载链接,喜欢看书的朋友请关注公众号:【lennylee的碎碎念】(lennyleede),首页回复:授人以渔,自动获取搜索资源的方法。

内容简介:

Docker和容器化计算技术一直在不断创新和发展。十多年前,本书首版面市,见证了 Docker技术的发展,为了让读者更深入地理解和掌握新的容器技术,第4版中补充了一些新特性(如高级构建功能),同时也摒弃了一些过时的工具和项目(如Docker Machine项目)。

全书分为四部分:第一部分简要介绍 Docker 的基础知识和常用命令;第二部分详述在各种典型场景中如何运用容器技术,包括操作系统、Web服务、数据库、分布式处理和大数据、编程开发以及容器云等;第三部分深入讲解高级容器技巧,包括实现原理、私有仓库、安全防护、高级网络功能和网络插件;第四部分展示与容器相关的开源项目,包括Etcd、Compose、Swarm、Kubernetes等。这些项目让使用容器技术变得更加有效率,使容器平台更加稳定和智能,共同构建了一个繁荣的容器化计算生态。

作者简介:

前言
第一部分 基础入门
第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
第14章 编程开发 173
14.1 C/C++ 173
14.1.1 GCC 173
14.1.2 LLVM 176
14.1.3 Clang 176
14.2 Java 178
14.2.1 Spring Boot 179
14.2.2 相关资源 182
14.3 Python 182
14.3.1 使用PyPy 184
14.3.2 使用Django 184
14.3.3 使用Flask 192
14.3.4 使用Sentry 195
14.3.5 相关资源 197
14.4 JavaScript 197
14.4.1 使用Node.js 197
14.4.2 相关资源 201
14.5 Go 201
14.5.1 Beego 204
14.5.2 Gogs:基于Go的Git
服务 208
14.5.3 相关资源 209
14.6 PHP 209
14.6.1 PHP常用框架 214
14.6.2 相关资源 216
14.7 Rust 216
14.8 本章小结 219
第15章 容器与云服务 220
15.1 云服务简介 220
15.2 AWS 221
15.3 谷歌云服务 223
15.4 Azure 云服务 226
15.5 阿里云容器服务 228
15.5.1 产品架构 231
15.5.2 应用场景 231
15.6 腾讯云容器服务 235
15.6.1 产品架构 237
15.6.2 应用场景 237
15.7 本章小结 240
第16章 容器实战思考 241
16.1 Docker为什么会成功 241
16.2 研发人员该如何看待容器 242
16.3 容器化开发模式 243
16.4 本章小结 247
第三部分 进阶技能
第17章 核心实现技术 251
17.1 基本架构 251
17.2 命名空间 253
17.3 控制组 257
17.4 联合文件系统 260
17.5 Linux网络虚拟化 262
17.6 本章小结 264
第18章 配置私有仓库 265
18.1 安装Docker Registry 265
18.2 配置TLS证书 267
18.3 管理访问权限 268
18.4 配置Registry 272
18.5 批量管理镜像 278
18.6 使用通知系统 280
18.7 使用Harbor搭建私有镜像仓库 283
18.8 本章小结 287
第19章 安全防护与配置 289
19.1 命名空间隔离的安全 290
19.2 控制组资源控制的安全 291
19.3 内核能力机制 291
19.4 Docker服务端的防护 292
19.5 更多安全特性的使用 293
19.6 使用第三方检测工具 294
19.7 本章小结 296
第20章 高级网络功能 297
20.1 启动与配置参数 297
20.2 配置容器DNS和主机名 299
20.3 容器访问控制 301
20.4 映射容器端口到宿主机的
实现 304
20.5 配置容器网桥 305
20.6 自定义网桥 306
20.7 使用OpenvSwitch网桥 307
20.8 创建一个点到点连接 309
20.9 本章小结 310
第21章 libnetwork插件化网络
功能 311
21.1 容器网络模型 311
21.2 Docker网络命令 312
21.3 构建跨主机容器网络 315
21.4 本章小结 318
第四部分 开源项目
第22章 Etcd——高可用的键值
数据库 321
22.1 安装和使用Etcd 322
22.1.1 二进制文件方式 322
22.1.2 Docker镜像方式下载 324
22.1.3 数据目录 324
22.1.4 服务启动参数 325
22.2 使用客户端命令 327
22.2.1 数据类操作 329
22.2.2 非数据类操作 330
22.3 Etcd集群管理 333
22.3.1 构建集群 333
22.3.2 集群配置优化 336
22.4 本章小结 338
第23章 Docker Compose——多容器
应用管理 339
23.1 安装与卸载 340
23.2 Compose模板文件 342
23.3 Compose命令说明 356
23.3.1 命令对象与格式 356
23.3.2 命令选项 356
23.3.3 命令使用说明 357
23.4 Compose环境变量 363
23.4.1 Compose中定义的环境
变量 363
23.4.2 在Compose文件中使用
环境变量 363
23.4.3 Compose应用案例一:
Web负载均衡 364
23.4.4 Compose应用案例二:
大数据Spark集群 369
23.5 本章小结 373
第24章 Docker Swarm模式——跨主
机容器集群管理 374
24.1 Swarm模式简介 374
24.2 基本概念 375
24.3 使用服务命令 381
24.4 本章小结 384
第25章 Kubernetes——生产级容器
集群平台 385
25.1 主要版本历史 386
25.2 核心概念 388
25.2.1 操作资源 388
25.2.2 控制器 389
25.2.3 辅助概念 390
25.3 资源抽象对象 390
25.3.1 容器组 391
25.3.2 服务 392
25.3.3 存储卷 393
25.3.4 控制器 394
25.3.5 其他抽象对象 396
25.4 快速体验 398
25.4.1 下载minikube和
kubectl 398
25.4.2 启动集群 398
25.4.3 查看Kubernetes服务 399
25.4.4 使用部署控制器管理
服务 399
25.5 重要组件 401
25.6 使用kubectl 406
25.6.1 获取kubectl 406
25.6.2 命令格式 407
25.6.3 全局参数 408
25.6.4 通用子命令 409
25.6.5 部署命令 414
25.6.6 集群管理命令 415
25.6.7 诊断命令 417
25.6.8 高级命令 420
25.6.9 配置命令 421
25.6.10 其他命令 422
25.7 网络设计 423
25.7.1 场景分析 423
25.7.2 直接路由 424
25.7.3 Overlay网络 424
25.8 本章小结 425
第26章 其他相关项目 426
26.1 持续集成 426
26.2 容器管理 432
26.3 编程开发 435
26.3.1 安装docker-py 435
26.3.2 使用示例 435
26.4 网络支持 436
26.4.1 pipework 436
26.4.2 Flannel项目 436
26.4.3 Weave Net项目 437
26.4.4 Calico 项目 438
26.5 日志处理 439
26.5.1 Fluentd 439
26.5.2 logspout 439
26.6 服务代理 440
26.6.1 Traefik 440
26.6.2 nginx-proxy 442
26.7 标准与规范 443
26.7.1 runC标准 443
26.7.2 开放容器规范 443
26.7.3 云应用十二要素 444
26.8 其他项目 445
26.8.1 OpenStack支持 445
26.8.2 dockerize 446
26.8.3 Unikernel 448
26.9 本章小结 448
附录
附录A 常见问题总结 450
A.1 镜像相关 450
A.2 容器相关 452
A.3 仓库相关 453
A.4 配置相关 453
A.5 Docker与虚拟化 455
A.6 其他 455
附录B 热门镜像介绍 457
B.1 MongoDB 457
B.2 MySQL 460
B.3 Nginx 463
B.4 Node.js 466
B.5 Redis 468
B.6 Ubuntu 471
B.7 WordPress 472
附录C Docker命令查询 476
C.1 基本语法 476
C.2 客户端命令 476
C.3 服务端命令选项 479
C.4 一张图总结Docker命令 482
附录D 资源链接 483
· · · · · · (收起)

原文摘录: