前言 xi
第一部分 背景与基础
第1章 何谓容器,为何需要它 3
1.1 容器与虚拟机的比较 4
1.2 Docker与容器 5
1.3 Docker的历史 7
1.4 插件与基础设施 8
1.5 64位Linux 9
第2章 安装 10
2.1 在Linux上安装 Docker 10
2.1.1 将SELinux置于宽容模式下运行 11
2.1.2 不使用sudo命令执行 Docker 11
2.2 在 Mac OS及Windows上安装 Docker 12
2.3 快速确认 13
第3章 迈出第一步 15
3.1 运行第一个镜像 15
3.2 基本命令 16
3.3 通过Dockerfile创建镜像 20
3.4 使用寄存服务 22
3.5 使用Redis官方镜像 24
3.6 总结 27
第4章 Docker基本概念 28
4.1 Docker系统架构 28
4.1.1 底层技术 29
4.1.2 周边技术 30
4.1.3 Docker托管 31
4.2 镜像是如何生成的 32
4.2.1 构建环境的上下文 32
4.2.2 镜像层 33
4.2.3 缓存 35
4.2.4 基础镜像 35
4.2.5 Dockerfile指令 37
4.3 使容器与世界相连 39
4.4 容器互联 40
4.5 利用数据卷和数据容器管理数据 41
4.5.1 共享数据 43
4.5.2 数据容器 44
4.6 Docker常用命令 45
4.6.1 run命令 46
4.6.2 容器管理 48
4.6.3 Docker信息 50
4.6.4 容器信息 50
4.6.5 镜像管理 52
4.6.6 使用寄存服务器 54
4.7 总结 55
第二部分 Docker与软件生命周期
第5章 在开发中应用Docker 59
5.1 说声“Hello World!” 59
5.2 通过Compose实现自动化 67
5.3 总结 69
第6章 创建一个简单的Web应用 71
6.1 创建一个基本网页 72
6.2 利用现有镜像 73
6.3 实现缓存功能 78
6.4 微服务 81
6.5 总结 81
第7章 镜像分发 82
7.1 镜像及镜像库的命名方式 82
7.2 Docker Hub 83
7.3 自动构建 85
7.4 私有分发 86
7.4.1 运行自己的寄存服务 86
7.4.2 商业寄存服务 92
7.5 缩减镜像大小 92
7.6 镜像出处 94
7.7 总结 94
第8章 Docker持续集成与测试 95
8.1 为identidock添加单元测试 95
8.2 创建Jenkins容器 100
8.3 推送镜像 106
8.3.1 给镜像正确的标签 106
8.3.2 准生产及生产环境 108
8.3.3 镜像数量激增的问题 108
8.3.4 使用Docker部署Jenkins slaves 109
8.4 备份Jenkins数据 109
8.5 持续集成的托管解决方案 109
8.6 测试与微服务 110
8.7 总结 111
第9章 部署容器 113
9.1 通过Docker Machine配置资源 114
9.2 使用代理 117
9.3 执行选项 122
9.3.1 shell脚本 122
9.3.2 使用进程管理器(或用systemd控制所有进程) 124
9.3.3 使用配置管理工具 127
9.4 主机配置 130
9.4.1 选择操作系统 130
9.4.2 选择存储驱动程序 130
9.5 专门的托管方案 132
9.5.1 Triton 132
9.5.2 谷歌容器引擎 134
9.5.3 亚马逊EC2容器服务 135
9.5.4 Giant Swarm 136
9.6 持久性数据和生产环境容器 138
9.7 分享秘密信息 139
9.7.1 在镜像中保存秘密信息 139
9.7.2 通过环境变量传递密钥 139
9.7.3 通过数据卷传递密钥 140
9.7.4 使用键值存储 140
9.8 网络连接 141
9.9 生产环境的寄存服务 141
9.10 持续部署/交付 141
9.11 总结 142
第10章 日志记录和监控 143
10.1 日志记录 144
10.1.1 Docker默认的日志记录 144
10.1.2 日志汇总 145
10.1.3 使用ELK 进行日志记录 146
10.1.4 通过syslog实现日志管理 155
10.1.5 从文件抓取日志 160
10.2 监控和警报 161
10.2.1 使用Docker工具进行监测 161
10.2.2 cAdvisor 162
10.2.3 集群解决方案 163
10.3 商用的监听及日志记录解决方案 166
10.4 总结 166
第三部分 工具和技术
第11章 联网和服务发现 169
11.1 大使容器 170
11.2 服务发现 173
11.2.1 etcd 173
11.2.2 SkyDNS 177
11.2.3 Consul 181
11.2.4 服务注册 185
11.2.5 其他解决方案 186
11.3 联网选项 187
11.3.1 网桥模式 187
11.3.2 主机模式 188
11.3.3 容器模式 188
11.3.4 未联网模式 188
11.4 全新的Docker联网功能 188
11.5 网络解决方案 190
11.5.1 Overlay 191
11.5.2 Weave 193
11.5.3 Flannel 196
11.5.4 Calico项目 201
11.6 总结 205
第12章 编排、集群和管理 207
12.1 集群和编排工具 208
12.1.1 Swarm 208
12.1.2 fleet 214
12.1.3 Kubernetes 219
12.1.4 Mesos和Marathon 226
12.2 容器管理平台 235
12.2.1 Rancher 236
12.2.2 Clocker 237
12.2.3 Tutum 238
12.3 总结 239
第13章 容器安全与限制容器 241
13.1 需要考虑的事项 242
13.2 纵深防御 244
13.3 如何保护identidock 245
13.4 以主机隔离容器 246
13.5 进行更新 246
13.6 镜像出处 249
13.6.1 Docker摘要 250
13.6.2 Docker的内容信任机制 250
13.6.3 可复制及可信任的Dockerfile 254
13.7 安全建议 256
13.7.1 设置用户 256
13.7.2 限制容器联网 257
13.7.3 删除setuid和setgid的二进制文件 258
13.7.4 限制内存使用 259
13.7.5 限制CPU 使用 260
13.7.6 限制重新启动 261
13.7.7 限制文件系统 261
13.7.8 限制内核能力 262
13.7.9 应用资源限制 263
13.8 运行加固内核 264
13.9 Linux安全模块 265
13.9.1 SELinux 265
13.9.2 AppArmor 268
13.10 审核 268
13.11 事件响应 269
13.12 未来特性 269
13.13 总结 270
作者简介 271
关于封面 271
· · · · · · (
收起)
0 有用 江小远 2022-02-02 13:17:13
豆瓣这个评分,我不李姐
0 有用 长河 2018-10-03 18:18:54
一本既有原理,也有操作的书。覆盖面很全,但是后面的服务发现,集群编排部分原理相对较浅。读完之后可以对docker有一定的了解,对devops中持续集成,持续发布有一个概念。
0 有用 算天算地算自己 2018-11-05 13:15:11
很实用
0 有用 淡定的小汤圆 2019-07-28 20:56:05
书有点过时了,只看了前七章和开发有关的。
0 有用 Enigma 2023-02-09 23:46:57 美国
弓头鲸(学名 Balaena mysticetus)。它是一种体色较深、体型粗壮 的鲸,特征是无背鳍。弓头鲸一生都在北极及附近一带的水域渡过,并不会像其他鲸类一 样,为了觅食和繁殖而迁徙到低纬度的水域。 弓头鲸体型硕大健壮,长度能达到 16 米(雄性)和 18 米(雌性)。它们有巨大的三角形 颅骨,用于凿穿北极冰层呼吸。弓头鲸的下颚明显呈弓形,颜色呈白色,上颚窄,其中容 纳的鲸须长度为鲸类中最长(... 弓头鲸(学名 Balaena mysticetus)。它是一种体色较深、体型粗壮 的鲸,特征是无背鳍。弓头鲸一生都在北极及附近一带的水域渡过,并不会像其他鲸类一 样,为了觅食和繁殖而迁徙到低纬度的水域。 弓头鲸体型硕大健壮,长度能达到 16 米(雄性)和 18 米(雌性)。它们有巨大的三角形 颅骨,用于凿穿北极冰层呼吸。弓头鲸的下颚明显呈弓形,颜色呈白色,上颚窄,其中容 纳的鲸须长度为鲸类中最长(3 米),用于过滤水中的细小猎物。它的一对喷气孔位于头部 的最上方,能够把水喷到 6 米高。它的鲸脂厚度堪称鲸类之最,厚达 43~50 厘米。 (展开)
0 有用 Enigma 2023-02-09 23:46:57 美国
弓头鲸(学名 Balaena mysticetus)。它是一种体色较深、体型粗壮 的鲸,特征是无背鳍。弓头鲸一生都在北极及附近一带的水域渡过,并不会像其他鲸类一 样,为了觅食和繁殖而迁徙到低纬度的水域。 弓头鲸体型硕大健壮,长度能达到 16 米(雄性)和 18 米(雌性)。它们有巨大的三角形 颅骨,用于凿穿北极冰层呼吸。弓头鲸的下颚明显呈弓形,颜色呈白色,上颚窄,其中容 纳的鲸须长度为鲸类中最长(... 弓头鲸(学名 Balaena mysticetus)。它是一种体色较深、体型粗壮 的鲸,特征是无背鳍。弓头鲸一生都在北极及附近一带的水域渡过,并不会像其他鲸类一 样,为了觅食和繁殖而迁徙到低纬度的水域。 弓头鲸体型硕大健壮,长度能达到 16 米(雄性)和 18 米(雌性)。它们有巨大的三角形 颅骨,用于凿穿北极冰层呼吸。弓头鲸的下颚明显呈弓形,颜色呈白色,上颚窄,其中容 纳的鲸须长度为鲸类中最长(3 米),用于过滤水中的细小猎物。它的一对喷气孔位于头部 的最上方,能够把水喷到 6 米高。它的鲸脂厚度堪称鲸类之最,厚达 43~50 厘米。 (展开)
3 有用 feiandxs 2023-01-28 15:09:20 湖南
来自2023年的1月份的附注:新读者们大可不必读这本书了,虽然很多东西没有变化,但你可以在文档里找到详实的说明。如果你对容器化的运行原理和底层机制想有了解,这本书也没有给你讲到。 现在是k8s的天下了。 哦 ,Docker公司从风光大火到差点死到现在,又神奇的开始赚钱了。 还有,docker是你必须会的技能了。 这本书没大问题,只是在今天,它不值得特地读了。
0 有用 猫梦 2022-04-21 15:46:34
好书
0 有用 江小远 2022-02-02 13:17:13
豆瓣这个评分,我不李姐
0 有用 在水一方 2021-06-27 02:49:56
内容很全面,但后面的网络和编排开始讲得比较宽泛,可以对整体的技术框架有一定的了解,但要想真的掌握这些工具,需要找专门的书籍