标签
内容简介
《Docker源码分析》是孙宏亮撰写的一本面向Docker实现原理的技术专著,2015年由机械工业出版社出版,属“容器技术系列”丛书。作者基于Docker 1.2.0版本源码,通过流程图与代码片段,逐层拆解Docker的架构与关键模块。全书分三大部分。第一部分即第1章,从宏观视角展示Docker总架构图,介绍Docker Client、Docker Daemon、Docker Registry、Graph、Driver、libcontainer、Docker Container 各模块的职责与实现,并以 docker pull 与 docker run 两个运行为例串联整体流程。第二部分为第2至14章,是全书主体:第2至8章梳理Docker软件的骨架,涵盖Client创建与命令执行、Daemon启动与NewDaemon实现、Server创建、Daemon网络与容器网络(bridge、host、other container、none 等模式);第9至11章聚焦镜像技术,讲解镜像下载、镜像存储(graphdriver 存储驱动)与 docker build 的实现;第12至14章分析容器创建的完整过程,包括容器创建、dockerinit 启动以及 libcontainer 的作用。第三部分为第15至17章,介绍Docker生态中被合称“三驾马车”的Swarm、Machine与Compose的架构设计与实现,用以补充Docker在跨主机集群与部署方面的能力。本书定位为“技术普及读物”,力求让使用者和开发者都能透过源码理解容器到底如何运行。
编辑推荐
“会用Docker”和“懂Docker”之间,隔着一层源代码。这本书正适合希望补上这一层的人:它不介绍命令速查,也不演示应用案例,而是把Docker 1.2.0的源码当作地图,按“先看骨架、再看器官、最后看生态”的顺序一路读下去。第一部分的总体架构图是全书地图,建议对照阅读;第2至8章从Client发出一条命令开始,跟到Daemon启动、Server接单、网络建立,把看似复杂的流程串成一条线;第9至14章的镜像与容器部分最能体现Docker“分层”与“隔离”的本质,graphdriver、dockerinit、libcontainer 这些平时只在报错信息里出现的名字,都能在这里找到具体位置;最后三章则将视野从单机引向Swarm、Machine、Compose组成的集群与部署工具链。作者用大量流程图和代码片段替代抽象叙述,章节间耦合度低,可以挑重点读,也适合通读。需要注意的是,书成于2015年,Docker版本迭代极快,源码细节与今天的实现已有差异,读它的价值在于理解设计思路与机制脉络,而非查找现成API。
适合谁读
适合
- 有Docker日常使用经验、想弄清底层实现原理的后端与运维工程师
- 正在搭建容器云平台、需要理解镜像与网络机制的架构师
- 熟悉Go语言,想通过真实项目源码学习工程结构的中高级开发者
- 计算机专业高年级学生与研究生,用于理解Linux命名空间、Cgroups等虚拟化基础
不适合
- 完全没接触过Docker命令与概念的零基础读者,宜先读入门书
- 只想找Docker命令速查、最佳实践或面试题库的读者
- 需要与当前Docker版本完全对应的API与源码细节的开发者,需另行查阅官方文档
阅读建议
- 先精读第1章架构图与两个运行案例(docker pull、docker run),建立全局坐标再进细节。
- 按主题分块读:网络(第6~7章)可单独成组;先读第9~11章镜像部分,再读容器部分,会更容易理解分层机制。
- 读代码时打开对应版本(Docker 1.2.0)的源码仓库,边看边对照,比只看书中片段收效更大。
- 在书上标注与当前版本差异较大的地方,善用官方文档补充,把重点放在设计思想而非具体函数名上。
出版社简介
机械工业出版社
中国 · 成立于 1950 年
机械工业出版社(China Machine Press)在科技与专业出版之外,库内图书还体现出对心理学、计算机、管理、财经与社科等方向的持续关注。心理学方面收入荣格作品及分析心理学导论,并涉及压力与健康、成瘾与疗愈等应用议题;计算机领域有《计算机程序的构造和解释(JavaScript版)》;管理与财经类包括《管理行为(原书第4版)》《不平等的代价(珍藏版)》《这次不一样:八百年金融危机史(纪念版)》;科学哲学与科学史方面则有《世界观(原书第3版)》。相关作者资源涵盖C.G.荣格、威廉·麦圭尔、索努·沙姆达萨尼、加博尔·马泰等。公开资料有限,以上仅据库内图书归纳其出版面貌。
目录
- 赞誉
- 序
- 前言
- 第1章 Docker架构
- 第2章 Docker Client创建与命令执行
- 第3章 启动Docker Daemon
- 第4章 Docker Daemon之NewDaemon实现
- 第5章 Docker Server的创建
- 第6章 Docker Daemon网络
- 第7章 Docker容器网络
- 第8章 Docker镜像
- 第9章 Docker镜像下载
- 第10章 Docker镜像存储
- 第11章 docker build实现
- 第12章 Docker容器创建
- 第13章 dockerinit启动
- 第14章 libcontainer介绍
- 第15章 Swarm架构设计与实现
- 第16章 Machine架构设计与实现
- 第17章 Compose架构设计与实现
常见问题
这本书讲的是哪个版本的Docker源码?
据公开资料,全书基于Docker 1.2.0版本源码展开解析,成书于2015年。此后Docker架构变动较大(如Swarm模式整合、runc取代部分libcontainer职责等),阅读时应把它当作理解机制的参考,而非当前版本的权威实现文档。
没有读过Docker入门书能直接看这本吗?
不太建议。本书从源码层面切入,默认读者了解镜像、容器、仓库等基本概念并会使用常用命令。若完全没有基础,建议先读一本Docker入门书并动手跑通几个容器,再回来看这本书会顺畅很多。
书里为什么要讲Swarm、Machine和Compose?
当时Docker单机能力已经很强,但跨主机集群与部署能力需要生态工具补齐。作者把这三者称为Docker生态的“三驾马车”,分别对应集群编排、主机管理与多容器应用编排,用三章讲解其架构与实现思路。
这本书只有一百多页,内容会不会太浅?
不同渠道标注的页数不一致(有164页与247页两种说法),但页数少并不代表浅。全书以流程图和代码片段为主、文字精炼,信息密度较高;真正的消化程度取决于是否对照源码动手跟进。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。