描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115474582
这是一本涵盖了101 个技巧的实操指南,读者可以用它来获得Docker 的大部分知识。本书遵循手册风格的“问题/ 解决方案/ 讨论”模式,针对很重要的问题,如轻松的服务器管理和配置、部署微服务、为实验而创建安全的环境等,为读者提供了及时有用的解决方案。在阅读本书的过程中,读者不但能学到Docker 的基础知识,还能学到Docker 的实践,如将Docker 和持续集成过程结合使用、使用Chef 来自动化复杂容器的创建过程以及使用Kubernetes 进行容器编排等。
本书主要内容
● 加速 DevOps流水线。
● 成本低廉地替换虚拟机。
● 提高云端工作流程的效率。
● 使用 Docker Hub。
● 引 领到 Docker 生态系统。
本书写给对Docker 感兴趣的人。
《Docker实践》要求读者具备一定的容器管理和运维的基础知识,适合想要将Docker投入实践的相关技术人员阅读,尤其适合具有中 高 级DevOps和运维背景的读者阅读。
第 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公司的Ben Firshman为本书作的序
“充满了四星秘诀!”
——Chad Davis,SolidFire
“读了这本书你会爱上Docker。”
——José San Leandro,OSOCO
“充满了开发 者需要的Docker技巧。”
——Kirk Brattkus,Net Effect Technologies
为借口 –
很不错的技术类图书,值得认真学习领会,加油
为借口 –
很不错的专业教材,有利于个人能力的提升,好评