书籍目录

建议根据书籍的目录系统的学习,结合多本书,确保知识见关联成为一个体系。

Docker 实战

  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
第 一部分 Docker基础 第 1章 Docker初探 3 1.1 Docker是什么以及为什么用Docker 4 1.1.1 Docker是什么 4 1.1.2 Docker有什么好处 6 1.1.3 关键的概念 8 1.2 构建一个Docker应用程序 10 1.2.1 创建新的Docker镜像的方式 11 1.2.2 编写一个Dockerfile 11 1.2.3 构建一个Docker镜像 12 1.2.4 运行一个Docker容器 14 1.2.5 Docker分层 16 1.3 小结 17 第 2章 理解Docker——深入引擎室 18 2.1 Docker的架构 18 2.2 Docker守护进程 20 技巧1 向世界开放Docker守护进程 20 技巧2 以守护进程方式运行容器 22 技巧3 将Docker移动到不同分区 24 2.3 Docker客户端 25 技巧4 使用socat监控Docker API流量 25 技巧5 使用端口连接容器 28 技巧6 链接容器实现端口隔离 29 技巧7 在浏览器中使用Docker 31 2.4 Docker注册中心 33 技巧8 建立一个本地Docker注册中心 34 2.5 Docker Hub 34 技巧9 查找并运行一个Docker镜像 35 2.6 小结 37 第 二部分 Docker与开发 第3章 将Docker用作轻量级虚拟机 41 3.1 从虚拟机到容器 42 技巧10 将虚拟机转换为容器 42 技巧11 类宿主机容器 44 技巧12 将一个系统拆成微服务容器 46 3.2 管理容器的服务 49 技巧13 管理容器内服务的启动 50 3.3 保存和还原工作成果 52 技巧14 在开发中“保存游戏”的方式 52 技巧15 给Docker打标签 54 技巧16 在Docker Hub上分享镜像 56 技巧17 在构建时指向特定的镜像 58 3.4 进程即环境 59 技巧18 在开发中“保存游戏”的方式 59 3.5 小结 61 第4章 Docker日常 62 4.1 卷——持久化问题 62 技巧19 Docker卷——持久化的问题 63 技巧20 通过BitTorrent Sync的分布式卷 64 技巧21 保留容器的bash历史 66 技巧22 数据容器 68 技巧23 使用SSHFS挂载远程卷 70 技巧24 通过NFS共享数据 72 技巧25 开发工具容器 75 4.2 运行容器 76 技巧26 在Docker里运行GUI 76 技巧27 检查容器 78 技巧28 干净地杀掉容器 80 技巧29 使用Docker Machine来置备Docker宿主机 81 4.3 构建镜像 84 技巧30 使用ADD将文件注入到镜像 85 技巧31 重新构建时不使用缓存 87 技巧32 拆分缓存 89 4.4 保持阵型 90 技巧33 运行Docker时不加sudo 90 技巧34 清理容器 91 技巧35 清理卷 92 技巧36 解绑容器的同时不停掉它 94 技巧37 使用DockerUI来管理Docker守护进程 95 技巧38 为Docker镜像生成一个依赖图 96 技巧39 直接操作——对容器执行命令 97 4.5 小结 99 第5章 配置管理——让一切井然有序 100 5.1 配置管理和Dockerfile 100 技巧40 使用ENTRYPOINT创建可靠的定制工具 101 技巧41 在构建中指定版本来避免软件包的漂移 102 技巧42 用perl -p -i -e替换文本 104 技巧43 镜像的扁平化 105 技巧44 用alien管理外来软件包 107 技巧45 把镜像逆向工程得到Dockerfile 109 5.2 传统配置管理工具与Docker 112 技巧46 传统方式:搭配make和Docker 112 技巧47 借助Chef Solo构建镜像 114 技巧48 从源到镜像的构建 118 5.3 小即是美 123 技巧49 保持构建镜像更小的Dockerfile技巧 123 技巧50 让镜像变得更小的技巧 126 技巧51 通过BusyBox和Alpine来精简Docker镜像 128 技巧52 Go模型的小容器 129 技巧53 使用inotifywait给容器瘦身 132 技巧54 大也可以美 134 5.4 小结 136 第三部分 Docker与DevOps 第6章 持续集成:加快开发流水线 139 6.1 Docker Hub自动化构建 139 技巧55 使用Docker Hub工作流 140 6.2 更有效的构建 143 技巧56 使用eatmydata为I/O密集型构建提速 143 技巧57 设置一个软件包缓存用于加快构建速度 145 技巧58 在Docker内部运行Selenium测试 147 6.3 容器化CI过程 151 技巧59 包含一个复杂的开发环境 151 技巧60 在一个Docker容器里运行Jenkins主服务器 156 技巧61 使用Jenkins的Swarm插件扩展CI 158 6.4 小结 161 第7章 持续交付:与Docker原则完 美契合 162 7.1 在CD流水线上与其他团队互动 163 技巧62 Docker契约——减少摩擦 163 7.2 推动Docker镜像的部署 165 技巧63 手动同步注册中心镜像 165 技巧64 通过受限连接交付镜像 166 技巧65 以TAR文件方式共享Docker对象 168 7.3 为不同环境配置镜像 170 技巧66 使用etcd通知容器 170 7.4 升级运行中的容器 172 技巧67 使用confd启用零停机时间切换 173 7.5 小结 177 第8章 网络模拟:无痛的现实环境测试 178 8.1 容器通信——超越手工链接 178 技巧68 一个简单的Docker Compose集群 178 技巧69 一个使用Docker Compose的SQLite服务器 182 技巧70 使用Resolvable通过DNS查找容器 185 8.2 使用Docker来模拟真实世界的网络 188 技巧71 使用Comcast模拟有问题的网络 188 技巧72 使用Blockade模拟有问题的网络 191 8.3 Docker和虚拟网络 194 技巧73 使用Weave建立一个基底网络 195 技巧74 Docker的网络与服务功能 198 8.4 小结 201 第四部分 生产环境中的Docker 第9章 容器编排:管理多个Docker容器 205 9.1 简单的单台宿主机 206 技巧75 使用systemd管理宿主机上的容器 206 技巧76 使用systemd编排宿主机上的容器 210 9.2 多宿主机Docker 212 技巧77 使用Helios手动管理多宿主机Docker 213 技巧78 基于Swarm的无缝Docker集群 219 技巧79 使用Kubernetes集群 222 技巧80 在Mesos上构建框架 228 技巧81 使用Marathon细粒度管理Mesos 235 9.3 服务发现:我们有什么 238 技巧82 使用Consul来发现服务 238 技巧83 使用Registrator进行自动化服务注册 246 9.4 小结 248 第 10章 Docker与安全 249 10.1 Docker访问权限及其意味着什么 249 10.2 Docker中的安全手段 250 技巧84 限制能力 251 技巧85 Docker实例上的HTTP认证 253 技巧86 保护Docker API 257 10.3 来自Docker以外的安全 260 技巧87 OpenShift——一个应用程序平台即服务 260 技巧88 使用安全选项 269 10.4 小结 275 第 11章 一帆风顺——生产环境中的Docker以及运维上的考量 276 11.1 监控 276 技巧89 记录容器的日志到宿主机的syslog 276 技巧90 把Docker日志发送到宿主机的输出系统 279 技巧91 使用cAdvisor监控容器 281 11.2 资源控制 282 技巧92 限制容器可以运行的内核 282 技巧93 给重要的容器更多CPU 283 技巧94 限制容器的内存使用 285 11.3 Docker的系统管理员用例 286 技巧95 使用Docker来运行cron作业 286 技巧96 通过“保存游戏”的方法来备份 289 11.4 小结 291 第 12章 Docker生产环境实践——应对各项挑战 292 12.1 性能——不能忽略宿主机 292 技巧97 从容器访问宿主机资源 292 技巧98 Device Mapper存储驱动和默认的容器大小 296 12.2 在容器出问题时——调试Docker 298 技巧99 使用nsenter调试容器的网络 298 技巧100 无须重新配置,使用tcpflow进行实时调试 301 技巧101 调试在特定宿主机上出问题的容器 302 12.3 小结 306 附录A 安装并使用Docker 307 附录B Docker配置 311 附录C Vagrant 313

Docker 基础与实战

  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
第1章 Docker  1 1.1 虚拟机与Docker  3 1.1.1 虚拟机  4 1.1.2 Docker  5 1.1.3 Linux容器  6 1.2 Docker镜像与容器  8 第2章 安装Docker  11 2.1 Linux  11 2.1.1 自动安装脚本  11 2.1.2 Ubuntu  11 2.1.3 RedHat Enterprise Linux、CentOS  12 2.1.4 使用最新二进制文件  12 2.2 Mac OS X  13 2.3 Windows  16 第3章 使用Docker  23 3.1 使用search命令搜索镜像  23 3.2 使用pull命令下载镜像  25 3.3 使用images命令列出镜像目录  25 3.4 使用run命令创建容器  25 3.5 使用ps命令查看容器列表  26 3.6 使用start命令启动容器  26 3.7 使用restart命令重启容器  27 3.8 使用attach命令连接容器  27 3.9 使用exec命令从外部运行容器内的命令  27 3.10 使用stop命令终止容器  28 3.11 使用rm命令删除容器  28 3.12 使用rmi命令删除镜像  29 第4章 创建Docker镜像  31 4.1 熟悉Bash  31 4.2 编写Dockerfile  36 4.3 使用build命令创建镜像  37 第5章 查看Docker  39 5.1 使用history命令查看镜像历史  39 5.2 使用cp命令复制文件  40 5.3 使用commit命令从容器的修改中创建镜像  40 5.4 使用diff命令检查容器文件的修改  40 5.5 使用inspect命令查看详细信息  41 第6章 灵活使用Docker  43 6.1 搭建Docker私有仓库  43 6.1.1 存储镜像数据到本地  43 6.1.2 使用push命令上传镜像  44 6.1.3 存储镜像数据到Amazon S3  45 6.1.4 使用默认认证  46 6.2 连接Docker的容器  52 6.3 连接到其他服务器的Docker 容器  53 6.4 使用Docker数据卷  56 6.5 使用Docker数据卷容器  59 6.6 创建Docker基础镜像  60 6.6.1 创建Ubuntu基础镜像  60 6.6.2 创建CentOS基础镜像  61 6.6.3 创建空基础镜像  62 6.7 在Docker内运行Docker  64 第7章 详细了解Dockerfile  67 7.1 .dockerignore  68 7.2 FROM  68 7.3 MAINTAINER  69 7.4 RUN  69 7.5 CMD  70 7.6 ENTRYPOINT  71 7.7 EXPOSE  73 7.8 ENV  73 7.9 ADD  74 7.10 COPY  76 7.11 VOLUME  77 7.12 USER  77 7.13 WORKDIR  78 7.14 ONBUILD  79 第8章 使用Docker部署应用程序  81 8.1 向一台服务器部署应用程序  81 8.1.1 在开发者PC安装Git并创建仓库  82 8.1.2 在开发者PC中使用Node.js编写Web服务器  83 8.1.3 在开发者PC中编写Dockerfile文件  84 8.1.4 在开发者PC中生成SSH 密钥  85 8.1.5 在服务器端安装Git并创建仓库  86 8.1.6 在服务器中安装Docker  87 8.1.7 在服务器中安装SSH密钥  88 8.1.8 在服务器中安装Git Hook  89 8.1.9 在开发者PC中推送源代码  90 8.2 向多台服务器部署应用程序  91 8.2.1 在开发者PC安装Git并创建仓库  92 8.2.2 在开发者PC中使用Node.js编写Web 服务器  93 8.2.3 在开发者PC中编写Dockerfile文件  94 8.2.4 在开发者PC中生成SSH密钥  95 8.2.5 在部署服务器安装Git并创建仓库  96 8.2.6 在部署服务器中生成SSH密钥  97 8.2.7 在部署服务器中安装Docker  98 8.2.8 在部署服务器中安装Docker注册服务器  99 8.2.9 在部署服务器中安装SSH密钥  100 8.2.10 在部署服务器中安装Git Hook  101 8.2.11 在应用程序服务器中安装Docker  103 8.2.12 在应用程序服务器中安装SSH 密钥  104 8.2.13 在开发者PC中推送源代码  105 第9章 Docker监控  107 9.1 编写监控服务器Dockerfile  108 9.2 编写应用程序服务器Dockerfile  111 9.3 在Web 浏览器中查看图表  114 第10章 在Amazon Web Services中使用Docker  117 10.1 在Amazon EC2中使用Docker  117 10.2 在AWS Elastic Beanstalk中使用Docker  119 10.2.1 在AWS控制台部署Docker应用程序  119 10.2.2 使用Docker Hub公开仓库镜像  129 10.2.3 使用Docker Hub私有仓库的镜像  131 10.2.4 使用Git部署Elastic Beanstalk Docker应用程序  139 第11章 在Google Cloud Platform中使用Docker  145 11.1 安装Goolge Cloud SDK  145 11.2 在Compute Engine中使用Docker  147 11.3 在Container Engine中使用Docker  148 第12章 使用Docker Hub  151 12.1 加入Docker Hub  151 12.2 使用push命令上传镜像  153 12.3 创建Docker Hub私有仓库  155 12.4 使用Docker Hub Automated Build  157 第13章 使用Docker Remote API  167 13.1 使用Docker Remote API Python库  169 13.1.1 创建并启动容器  169 13.1.2 创建镜像  173 13.1.3 显示容器列表  175 13.1.4 显示镜像列表  176 13.1.5 其他示例与函数  176 13.2 使用Docker Remote API Python库进行HTTPS通信  187 13.2.1 创建证书  187 13.2.2 使用Python库  191 第14章 使用CoreOS  193 14.1 在VirtualBox中安装CoreOS  196 使用systemd运行服务  205 14.2 使用Vagrant安装CoreOS  206 14.3 使用etcd  211 14.3.1 创建etcd键与目录  211 14.3.2 输出etcd键与目录列表  212 14.3.3 设置自动删除etcd键与目录  212 14.3.4 监视etcd键  213 14.3.5 etcd其他命令  214 14.4 使用fleet  214 14.4.1 输出fleet机器列表  215 14.4.2 使用fleet运行Unit  215 14.4.3 输出fleet Unit列表  217 14.4.4 查看fleet Unit状态  217 14.4.5 测试fleet的自动恢复功能  218 14.4.6 使用fleet专用选项  219 14.4.7 灵活使用fleet Unit文件模板  222 14.4.8 灵活使用fleet sidekick模型  224 14.4.9 fleet其他命令  227 14.5 在云服务中使用CoreOS  227 14.5.1 在Amazon EC2中使用CoreOS  227 14.5.2 在Google Compute Engine中使用CoreOS  229 第15章 使用Docker搭建WordPress 博客  231 15.1 编写WordPress Dockerfile文件  232 15.2 编写MySQL数据库Dockerfile文件  233 15.3 创建WordPress与数据库容器  236 第16章 使用Docker构建Ruby on Rails应用  237 16.1 安装Ruby与Rails  238 16.2 编写Rails Dockerfile  240 16.3 编写PostgreSQL数据库Dockerfile 文件  245 16.4 创建Rails与数据库容器  247 第17章 使用Docker构建Django应用  249 17.1 安装Django  250 17.2 编写Django Dockerfile文件  253 17.3 编写Oracle数据库Dockerfile文件  258 17.4 创建Django与数据库容器  261 第18章 Docker应用案例  263 18.1 与负载平衡相关的自动伸缩  263 18.2 整合开发、测试、运营  264 18.3 轻松迁移服务  265 18.4 用于测试  267 第19章 Docker命令与选项列表  269 19.1 attach  270 19.2 build  271 19.3 Commit  273 19.4 cp  273 19.5 create  274 19.6 diff  277 19.7 events  277 19.8 exec  278 19.9 export  280 19.10 history  280 19.11 images  281 19.12 import  281 19.13 info  282 19.14 inspect  283 19.15 kill  284 19.16 load  284 19.17 login  285 19.18 logout  286 19.19 logs  286 19.20 port  287 19.21 pause  287 19.22 ps  287 19.23 pull  288 19.24 push  289 19.25 restart  289 19.26 rm  289 19.27 rmi  290 19.28 run  291 19.29 save  296 19.30 search  297 19.31 start  297 19.32 stop  298 19.33 tag  298 19.34 top  299 19.35 unpause  299 19.36 version  300 19.37 wait  300 附录 编译Docker  301

Docker 技术入门与实战

  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
第3版前言 第一部分 基础入门 第1章 初识Docker与容器 3 1.1 什么是Docker 3 1.2 为什么要使用Docker 6 1.3 Docker与虚拟化 8 1.4 本章小结 9 第2章 核心概念与安装配置 10 2.1 核心概念 10 2.2 安装Docker引擎 11 2.2.1 Ubuntu 环境下安装 Docker 12 2.2.2 CentOS 环境下安装 Docker 14 2.2.3 通过脚本安装 15 2.2.4 macOS环境下安装 Docker 15 2.2.5 Windows环境下安装Docker 23 2.3 配置 Docker 服务 26 2.4 推荐实践环境 27 2.5 本章小结 27 第3章 使用Docker镜像 28 3.1 获取镜像 28 3.2 查看镜像信息 30 3.3 搜寻镜像 32 3.4 删除和清理镜像 33 3.5 创建镜像 35 3.6 存出和载入镜像 36 3.7 上传镜像 37 3.8 本章小结 38 第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

参考资料

http://www.java1234.com/a/javabook/javabase/2019/0330/13241.html

https://www.jb51.net/books/674322.html

http://www.java1234.com/a/javabook/yun/2019/0111/12718.html