Docker即学即用(第三版)
Docker即学即用(第三版)
Sean P. Kane, Karl Matthias
安道 译
出版时间:2025年06月
页数:416
“Docker是一项让人兴奋的技术,本书教你在生产环境中应该如何使用容器。”
——Kelsey Hightower
Google Cloud Platform首席开发者布道师
“本书不仅涵盖基本的底层概念,还介绍了从大规模部署中总结出的宝贵经验。”
——Liz Rice
Isovalent首席开源官和eBPF专家
“本书将指引你构建稳健、高可用性的现代分布式系统。”
——Mihai Todor
TLCP高级总工程师
Docker和Linux容器从根本上改变了组织大规模开发、交付和运行软件的方式。但是,了解这些工具为何如此重要,以及如何正确集成到组织的生态系统中可能具有一定挑战。本书全面更新,指引开发人员、运维人员、架构师和技术经理充分理解Docker工具集,让他们了解容器对现代软件交付和管理几乎各方面的改进。
这一版的更新涵盖本书首次出版后近十年来的重大变化。本书作者根据最佳实践进行了修订,还增加了BuildKit、多架构映像支持、无root容器等更多内容。
● 了解Docker和Linux容器如何与云服务和Kubernetes集成。
● 构建Open Container Initiative (OCI)映像,使用强大的命令行工具部署和管理Linux容器。
● 了解OCI映像如何简化应用的依赖管理和部署流程。
● 学习在生产中部署和测试Linux容器的实用技术。
● 在任何需要的地方大规模部署生产容器。
● 探讨一些Docker高级话题,包括部署工具、网络、编排、安全和配置。
  1. 前言
  2. 第1章 引言
  3. 1.1 Docker带来的希望
  4. 1.2 Docker不是什么
  5. 1.3 重要术语
  6. 1.4 小结
  7. 第2章 Docker概览
  8. 2.1 简化流程
  9. 2.2 广泛支持和采用
  10. 2.3 架构
  11. 2.3.1 客户端–服务器模型
  12. 2.3.2 网络端口和UNIX套接字
  13. 2.3.3 强健的工具
  14. 2.3.4 Docker命令行工具
  15. 2.3.5 Docker引擎API
  16. 2.3.6 容器的网络层
  17. 2.4 合理利用Docker
  18. 2.4.1 容器不是虚拟机
  19. 2.4.2 有限的隔离
  20. 2.4.3 容器很轻量级
  21. 2.4.4 实现不可变的基础设施
  22. 2.4.5 无状态的应用
  23. 2.4.6 状态外存
  24. 2.5 Docker工作流程
  25. 2.5.1 版本控制
  26. 2.5.2 构建
  27. 2.5.3 测试
  28. 2.5.4 打包
  29. 2.5.5 部署
  30. 2.5.6 Docker的生态系统
  31. 2.6 小结
  32. 第3章 安装Docker
  33. 3.1 安装Docker客户端
  34. 3.1.1 Linux
  35. 3.1.2 macOS,Mac OS X
  36. 3.1.3 Microsoft Windows 11
  37. 3.2 安装Docker服务器
  38. 3.2.1 基于systemd的Linux
  39. 3.2.2 不基于Linux虚拟机的服务器
  40. 3.3 测试安装的 Docker
  41. 3.3.1 Ubuntu
  42. 3.3.2 Fedora
  43. 3.3.3 Alpine Linux
  44. 3.4 探索Docker服务器
  45. 3.5 小结
  46. 第4章 使用Docker映像
  47. 4.1 Dockerfile文件剖析
  48. 4.2 构建映像
  49. 4.3 运行映像
  50. 4.3.1 构建参数
  51. 4.3.2 环境变量即配置
  52. 4.4 定制基础映像
  53. 4.5 存储映像
  54. 4.5.1 公共注册处
  55. 4.5.2 私有注册处
  56. 4.5.3 获得注册处的身份验证
  57. 4.5.4 自建私有注册处
  58. 4.6 优化映像
  59. 4.6.1 映像瘦身
  60. 4.6.2 层层相加
  61. 4.6.3 利用层缓存
  62. 4.6.4 目录缓存
  63. 4.7 诊断构建问题
  64. 4.7.1 调试未用BuildKit的映像
  65. 4.7.2 调试使用BuildKit的映像
  66. 4.8 多架构构建
  67. 4.9 小结
  68. 第5章 使用Docker容器
  69. 5.1 容器是什么
  70. 5.2 创建容器
  71. 5.2.1 基本配置
  72. 5.2.2 存储卷
  73. 5.2.3 资源配额
  74. 5.3 启动容器
  75. 5.4 自动重启容器
  76. 5.5 停止容器
  77. 5.6 终止容器
  78. 5.7 暂停和恢复容器
  79. 5.8 清理容器和映像
  80. 5.9 Windows容器
  81. 5.10 小结
  82. 第6章 探索Docker的其他功能
  83. 6.1 打印Docker的版本号
  84. 6.2 服务器信息
  85. 6.3 下载映像更新
  86. 6.4 审查容器
  87. 6.5 在shell中探索
  88. 6.6 返回结果
  89. 6.7 进入运行中的容器
  90. 6.7.1 docker container exec
  91. 6.7.2 docker volume
  92. 6.8 处理日志
  93. 6.8.1 docker container logs
  94. 6.8.2 日志处理高级技术
  95. 6.9 监控Docker
  96. 6.9.1 容器的统计信息
  97. 6.9.2 健康检查
  98. 6.9.3 docker system events
  99. 6.9.4 cAdvisor
  100. 6.10 Prometheus监控系统
  101. 6.11 继续探索
  102. 6.12 小结
  103. 第7章 调试容器
  104. 7.1 列出进程
  105. 7.2 审查进程
  106. 7.3 管控进程
  107. 7.4 审查网络
  108. 7.5 映像历史
  109. 7.6 审查容器
  110. 7.7 审查文件系统
  111. 7.8 小结
  112. 第8章 探索Docker Compose
  113. 8.1 配置Docker Compose
  114. 8.2 启动服务
  115. 8.3 探索Rocket.Chat
  116. 8.4 Docker Compose命令
  117. 8.5 管理配置
  118. 8.5.1 默认值
  119. 8.5.2 强制值
  120. 8.5.3 dotenv文件
  121. 8.6 小结
  122. 第9章 在生产环境中部署容器
  123. 9.1 部署到生产环境
  124. 9.2 Docker在生产环境中扮演的角色
  125. 9.2.1 作业管控
  126. 9.2.2 资源限制
  127. 9.2.3 网络管理
  128. 9.2.4 配置管理
  129. 9.2.5 打包交付
  130. 9.2.6 日志处理
  131. 9.2.7 健康监控
  132. 9.2.8 调度
  133. 9.2.9 服务发现
  134. 9.2.10 本节小结
  135. 9.3 Docker和DevOps流水作业
  136. 9.3.1 简述
  137. 9.3.2 外部依赖
  138. 9.4 小结
  139. 第10章 容器弹性伸缩
  140. 10.1 Docker Swarm模式
  141. 10.2 Kubernetes
  142. 10.2.1 Minikube
  143. 10.2.2 Docker Desktop集成的Kubernetes
  144. 10.2.3 Kind
  145. 10.3 Amazon ECS和Fargate
  146. 10.3.1 AWS基本设置
  147. 10.3.2 设置IAM角色
  148. 10.3.3 设置AWS CLI
  149. 10.3.4 容器实例
  150. 10.3.5 定义任务
  151. 10.3.6 测试任务
  152. 10.3.7 停止任务
  153. 10.4 小结
  154. 第11章 高级话题
  155. 11.1 容器详解
  156. 11.1.1 控制组
  157. 11.1.2 命名空间
  158. 11.2 安全性
  159. 11.2.1 UID 0
  160. 11.2.2 无root模式
  161. 11.2.3 需要特权的容器
  162. 11.2.4 安全计算模式
  163. 11.2.5 SELinux和AppArmor
  164. 11.2.6 Docker守护进程
  165. 11.3 高级配置
  166. 11.4 存储
  167. 11.5 nsenter
  168. 11.6 Docker的结构
  169. 11.7 替换运行时
  170. 11.8 小结
  171. 第12章 丰富的选择
  172. 12.1 客户端工具
  173. 12.1.1 nerdctl
  174. 12.1.2 podman和buildah
  175. 12.2 多合一开发者工具
  176. 12.2.1 Rancher Desktop
  177. 12.2.2 Podman Desktop
  178. 12.3 小结
  179. 第13章 容器平台设计
  180. 13.1 应用的十二要素
  181. 13.1.1 代码基
  182. 13.1.2 依赖
  183. 13.1.3 配置
  184. 13.1.4 后端服务
  185. 13.1.5 构建、发布、运行
  186. 13.1.6 进程
  187. 13.1.7 端口绑定
  188. 13.1.8 并发
  189. 13.1.9 易用
  190. 13.1.10 开发环境和生产环境同等重要
  191. 13.1.11 日志
  192. 13.1.12 管理进程
  193. 13.1.13 十二要素小结
  194. 13.2 响应式宣言
  195. 13.2.1 反应迅速
  196. 13.2.2 恢复力强
  197. 13.2.3 灵活性高
  198. 13.2.4 消息驱动
  199. 13.3 小结
  200. 第14章 总结
  201. 14.1 前路漫漫
  202. 14.2 Docker解决的问题
  203. 14.3 Docker工作流程
  204. 14.4 简化用于部署的构建产物
  205. 14.5 使用最佳方式存储和获取映像
  206. 14.6 回报
  207. 14.7 结语
书名:Docker即学即用(第三版)
译者:安道 译
国内出版社:中国电力出版社
出版时间:2025年06月
页数:416
书号:978-7-5198-9954-7
原版书书名:Docker: Up & Running, 3e
原版书出版商:O'Reilly Media
Sean P. Kane
 
Sean P. Kane是New Relic公司的首席网站可靠性工程师,长期从事生产运维,有很多不同的头衔,在很多行业中工作过。
Sean Kane是techlabs.sh的创始人和SuperOrbital的首席生产运维工程师。
 
 
Karl Matthias
 
Karl Matthias是InVision公司的云平台服务经理,他做过开发者、分布式系统架构师、系统管理员和网络工程师,在初创公司和财 富500强大企业都能见到他的身影。
Karl Matthias是Community.com的架构副总裁。
 
 
本书封面上的动物是蓝鲸(学名:Balaenoptera musculus),长度可达100英尺,体重可达200吨,是地球上最大的动物,也是迄今为止最大的动物。出生时,幼鲸与成年河马差不多大,一天能长200磅。成年蓝鲸体型细长,背鳍较小,体侧有两个鳍状肢,尾巴横平。因皮肤呈蓝灰色,因此得名蓝鲸。
蓝鲸四处迁徙,各个大洋中都有它们的身影。蓝鲸通常在寒冷的极地地区捕食,在温暖的热带水域繁衍后代。蓝鲸一般独自或结伴活动,通过复杂的叫声沟通。蓝鲸归须鲸科(balaenopteridae),通过嘴中称为鲸须的骨板过滤食物。主食为磷虾,一种小型甲壳纲动物。蓝鲸每天需要150万千卡能量,日均进食7900磅磷虾。由于游速快、体型大,蓝鲸基本没有天敌。
蓝鲸曾经四处可见,种族数量估计有十几万。对捕鲸者来说,蓝鲸游速快、体型大,很难捕猎,不过19世纪后期发明鱼叉枪后,捕猎蓝鲸便不是什么难事了。经过几十年的捕猎,蓝鲸的数量急剧下降。1966年颁布了一项禁止捕猎蓝鲸的国际禁令,种族数量有所回升,不过仍处于濒危状态。
购买选项
定价:128.00元
书号:978-7-5198-9954-7
出版社:中国电力出版社