
孙宏亮
本书是一本引导读者深入了解Docker实现原理的技术普及读物,主要目标是通过对Docker架构和源代码的详细讲解和解剖,帮助读者对Docker的底层实现有一个全面的理解。本书的内容主要集中于三部分:Docker的架构、Docker的模块,以及Docker的三驾马车Swarm、Machine和Compose。第一部分(第1章)主要从宏观的角度和读者一起领略Docker的架构设计,并初步介绍架构中各模块的职责。第二部分(第2~14章)是本书的主体部分,主要针对Docker中多个重要的模块进行具体深入分析,包括DockerClient、DockerDaemon、DockerServer、Docker网络、Docker镜像、Docker容器等。读者可以发现,Docker的模块之间耦合度非常低,很适合循序渐进,层层深入。第2~8章主要从Docker软件的架构入手,勾勒骨架;第9~11章集中于Docker镜像技术,夯实基础;第12~14章则进一步分析Docker容器的始末,阐述本质。第三部分(第15~17章)介绍Docker生态三驾马车—Swarm、Machine和Compose。Docker拥有强大的单机能力,三驾马车可以很好地补充Docker的跨主机能力以及部署能力。读者可以通过这几章感受Docker生态中其他功能强大的软件。
作者对行文的架构设计的很妙,类似docker的分层思想,从上至下,抽丝剥茧,像剥洋葱一样。docker这种架构设计是一种艺术。对于Docker网络,完美利用SNAT和DNAT实现容器内网络和宿主机网络,因特网完美打通,借力巨人Linux的namespace和cgroup,完美实现资源隔离和使用限制。对于Docker镜像,采用分层思想,借鉴Linux,先rootfs,再union mount,image,layer,这种设计理念,把分层架构设计思想发挥的淋漓尽致。结合杨保华博士的书《Docker技术入门与实战(第3版)》阅读与实战效果更佳。
2025年读完的第10本书。容器技术本是新瓶装旧酒,Docker 站在 Linux Kernel 的Namespace、Cgroup、UnionFS 巨人的肩膀上,创造性地提出了 Image 镜像的概念,真正做到了产物在开发、测试、生产环境下的一致性,极大的方便了开发者。镜像 Image 被拆解为 Layer,依赖 CopyOnWrite 能力,和共享层,极大的提高了效率。 本书拆解了Docker 的代码骨架,详细介绍Docker 各个模块的功能和实现细节。 一个小时快速翻完,后面需要深入研究时再来翻阅对应的章节即可。
主要是代码解释,助于方便看代码,快速检索代码。缺点是原理缺少。
还只是讲了代码的骨架, 觉得略浅
没涉及核心原理,类似于给代码加了注释解释做了什么但没讲为什么这么做
非常好的一本书,对于go语言之前从没接触过的我来说,看本书的go代码,不可避免的会有看不太懂的地方,但整体来说还是可以理解的,源码级的阐述,更加加深对docker的认知。总之很好的一本书,值得反复阅读[跳跳]
疫情期间在家磕碰完的一本,当时抓到的重点,隔那么久回顾也还是很受用: - 集装箱思想 - 外部不用关心里面装了什么,也不用关心配置,整个运行起来就好了 - 容器虚拟化 - 是 OS 层面的虚拟化,资源仅在进程内隔离 - 资源隔离的实现 - 在 linux 下靠 cgroup 限制资源占额,namespace 隔离全局资源 - 虚拟机是硬件上的虚拟化,资源完全隔离 - 镜像 - 组成 - 运行环境参数(json) - 文件系统内容 - 文件系统:反复可用、创建容易 - 多层联合挂载 - 除了最顶层可写,其它层都只读 - 最终给到用户的效果是一个合并的效果(修改文件实际上是挎贝多一层,然后在挎贝的这一层去反映文件的变化) - 父子关系 - 如果有共同的父,会智能识别出来,并以此减小镜像的大小 - 网络模式 - host 模式 - 和宿主机共用一个 Network Namespace,ip 和宿主机一样 - 把宿主机的 host 文件挂到容器里共用一份 - joined-container 模式 - 和另一个容器共用 Network Namespace - bridge 模式 - 每个容器一个 Network Namespace(ip 和宿主机不一样)并自动配置 - none 模式 - 每个容器一个 Network Namespace 但要手动配置
有一些docker使用经验,看源码分析是个不错的进阶选择,统观容器涉及的知识,在深入就是linux内核,关于namespace隔离资源,cgroup管理进程组权限,iptables网络转发等等。最后还讲了docker管理的方案,swarm、machine、compose。不过工具关键还是要实鉴。终于吃汤面一样看完了,从终点四百多页看到七百多页,不晓得微信阅读怎么个算法。
很喜欢里面的流程图梳理,果然一图胜万言啊。虽然swarm和compose在集群化部署与管理方面已经被k8s干死了,但是其架构层面的思想还是很有借鉴意义的
一本解读源码的书,如果要用汉语把代码给复述一遍,大可不必。