Docker源码分析.pdf

创建时间:2019-08-31 下载量:0 访问量:210 赞:0 踩:0
ISBN:9787111510727
简介:
本书是一本引导读者深入了解Docker实现原理的技术普及读物,主要目标是通过对Docker架构和源代码的详细讲解和解剖,帮助读者对Docker的底层实现有一个全面的理解。本书的内容主要集中于三部分:Docker的架构、Docker的模块,以及Docker的三驾马车Swarm、Machine和Compose。
关注“工联信息网”回复“gMu7upvMkA”可领取!仅供学习使用,支持正版!
详细介绍

赞誉

前言
第1章 Docker架构 
1.1 引言 
1.2 Docker总架构图 
1.3 Docker各模块功能与实现分析 
1.3.1 Docker Client 
1.3.2 Docker Daemon 
1.3.3 Docker Registry 
1.3.4 Graph 
1.3.5 Driver 
1.3.6 libcontainer 
1.3.7 Docker Container 
1.4 Docker运行案例分析 
1.4.1 docker pull 
1.4.2 docker run 
1.5 总结


第2章 Docker Client创建与命令执行 
2.1 引言 
2.2 创建Docker Client 
2.2.1 Docker命令的flag参数解析 
2.2.2 处理flag信息并收集Docker Client的配置信息 
2.2.3 如何创建Docker Client 
2.3 Docker命令执行 
2.3.1 Docker Client解析请求命令 
2.3.2 Docker Client执行请求命令 
2.4 总结


第3章 启动Docker Daemon 
3.1 引言 
3.2 Docker Daemon的启动流程 
3.3 mainDaemon()的具体实现 
3.3.1 配置初始化 
3.3.2 flag参数检查 
3.3.3 创建engine对象 
3.3.4 设置engine的信号捕获 
3.3.5 加载builtins 
3.3.6 使用goroutine加载daemon
 对象并运行 
3.3.7 打印Docker版本及驱动信息 
3.3.8 serveapi的创建与运行 
3.4 总结


第4章 Docker Daemon之NewDaemon实现 
4.1 引言 
4.2 NewDaemon具体实现 
4.3 应用配置信息 
4.3.1 配置Docker容器的MTU 
4.3.2 检测网桥配置信息 
4.3.3 查验容器间的通信配置 
4.3.4 处理网络功能配置 
4.3.5 处理PID文件配置 
4.4 检测系统支持及用户权限 
4.5 配置工作路径 
4.6 加载并配置graphdriver 
4.6.1 创建graphdriver 
4.6.2 验证btrfs与SELinux的兼容性 
4.6.3 创建容器仓库目录 
4.6.4 迁移容器至aufs类型 
4.6.5 创建镜像graph 
4.6.6 创建volumesdriver以及volumes graph 
4.6.7 创建TagStore 
4.7 配置Docker Daemon网络环境 
4.7.1 创建Docker网络设备 
4.7.2 启用iptables功能 
4.7.3 启用系统数据包转发功能 
4.7.4 创建DOCKER链 
4.7.5 注册处理方法至Engine 
4.8 创建graphdb并初始化 
4.9 创建execdriver 
4.10 创建daemon实例 
4.11 检测DNS配置 
4.12 启动时加载已有Docker容器 
4.13 设置shutdown的处理方法 
4.14 返回daemon对象实例 
4.15 总结


第5章 Docker Server的创建 
5.1 引言 
5.2 Docker Server创建流程 
5.2.1 创建名为"serveapi"的Job 
5.2.2 配置Job环境变量 
5.2.3 运行Job 
5.3 ServeApi运行流程 
5.4 ListenAndServe实现 
5.4.1 创建router路由实例 
5.4.2 创建listener监听实例 
5.4.3 创建http.Server 
5.4.4 启动API服务 
5.5 总结


第6章 Docker Daemon网络 
6.1 引言 
6.2 Docker Daemon网络介绍 
6.3 Docker Daemon网络配置接口 
6.4 Docker Daemon网络初始化 
6.4.1 启动Docker Daemon传递flag参数 
6.4.2 解析网络flag参数 
6.4.3 预处理flag参数 
6.4.4 确定Docker网络模式 
6.5 创建Docker网桥 
6.5.1 提取环境变量 
6.5.2 确定Docker网桥设备名 
6.5.3 查找bridgeIface网桥设备 
6.5.4 bridgeIface已创建 
6.5.5 bridgeIface未创建 
6.5.6 获取网桥设备的网络地址 
6.5.7 配置Docker Daemon的iptables 
6.5.8 配置网络设备间数据报转发功能 
6.5.9 注册网络Handler 
6.6 总结


第7章 Docker容器网络 
7.1 引言 
7.2 Docker容器网络模式 
7.2.1 bridge桥接模式 
7.2.2 host模式 
7.2.3 other container模式 
7.2.4 none模式 
7.3 Docker Client配置容器网络模式 
7.3.1 使用Docker Client 
7.3.2 runconfig包解析 
7.3.3 CmdRun执行 
7.4 Docker Daemon创建容器网络流程 
7.4.1 创建容器之网络配置 
7.4.2 启动容器之网络配置 
7.5 execdriver网络执行流程 
7.5.1 创建libcontainer的Config对象 
7.5.2 调用libcontainer的namespaces启动容器 
7.6 libcontainer实现内核态网络配置 
7.6.1 创建exec.Cmd 
7.6.2 启动exec.Cmd创建进程 
7.6.3 为容器进程初始化网络环境 
7.7 总结


第8章 Docker镜像 
8.1 引言 
8.2 Docker镜像介绍 
8.3 rootfs 
8.4 Union Mount 
8.5 image 
8.6 layer 
8.7 总结


第9章 Docker镜像下载 
9.1 引言 
9.2 Docker镜像下载流程 
9.3 Docker Client 
9.3.1 解析镜像参数 
9.3.2 配置认证信息 
9.3.3 发送API请求 
9.4 Docker Server 
9.4.1 解析请求参数 
9.4.2 创建并配置Job 
9.4.3 触发执行Job 
9.5 Docker Daemon 
9.5.1 解析Job参数 
9.5.2 创建session对象 
9.5.3 执行镜像下载 
9.6 总结


第10章 Docker镜像存储 
10.1 引言 
10.2 镜像注册 
10.3 验证镜像ID 
10.4 创建镜像路径 
10.4.1 创建mnt、diff和layers子目录 
10.4.2 挂载祖先镜像并返回根目录 
10.5 存储镜像内容 
10.5.1 解压镜像内容 
10.5.2 收集镜像大小并记录 
10.5.3 存储jsonData信息 
10.6 注册镜像ID 
10.7 总结


第11章 docker build实现 
11.1 引言 
11.2 docker build执行流程 
11.2.1 Docker Client与docker build 
11.2.2 Docker Server与docker build 
11.2.3 Docker Daemon与docker build 
11.3 Dockerfile命令解析流程 
11.4 Dockerfile命令分析 
11.4.1 FROM命令 
11.4.2 RUN命令 
11.4.3 ENV命令 
11.5 总结


第12章 Docker容器创建 
12.1 引言 
12.2 Docker容器运行流程 
12.3 Docker Daemon创建容器对象 
12.3.1 LookupImage 
12.3.2 CheckDepth 
12.3.3 mergeAndVerifyConfig 
12.3.4 newContainer 
12.3.5 createRootfs 
12.3.6 ToDisk 
12.3.7 Register 
12.4 Docker Daemon启动容器 
12.4.1 setupContainerDns 
12.4.2 Mount 
12.4.3 initializeNetworking 
12.4.4 verifyDaemonSetting 
12.4.5 prepareVolumesForContainer 
12.4.6 setupLinkedContainers 
12.4.7 setupWorkingDirectory 
12.4.8 createDaemonEnvironment 
12.4.9 populateCommand 
12.4.10 setupMountsForContainer 
12.4.11 waitForStart 
12.5 总结


第13章 dockerinit启动 
13.1 引言 
13.2 dockerinit介绍 
13.2.1 dockerinit初始化内容 
13.2.2 dockerinit与Docker Daemon 
13.3 dockerinit执行入口 
13.3.1 createCommand分析 
13.3.2 namespace.exec 
13.4 dockerinit运行 
13.4.1 reexec.Init()的分析 
13.4.2 dockerinit的执行流程 
13.5 libcontainer的运行 
13.5.1 Docker Daemon设置cgroups参数 
13.5.2 Docker Daemon创建网络栈资源 
13.5.3 dockerinit配置网络栈 
13.5.4 dockerinit初始化mount namespace 
13.5.5 dockerinit完成namespace配置 
13.5.6 dockerinit执行用户命令Entrypoint 
13.6 总结


第14章 libcontainer介绍 
14.1 引言 
14.2 Docker、libcontainer以及LXC的关系 
14.3 libcontainer模块分析 
14.3.1 namespace 
14.3.2 cgroup 
14.3.3 网络 
14.3.4 挂载 
14.3.5 设备 
14.3.6 nsinit 
14.3.7 其他模块 
14.4 总结


第15章 Swarm架构设计与实现 
15.1 引言 
15.2 Swarm架构 
15.2.1 Swarm Node 
15.2.2 Docker Node 
15.2.3 node discovery 
15.2.4 scheduler 
15.3 Swarm命令 
15.3.1 swarm create 
15.3.2 swarm manage 
15.3.3 swarm join 
15.3.4 swarm list 
15.4 总结


第16章 Machine架构设计与实现 
16.1 引言 
16.2 Machine架构 
16.2.1 Machine 
16.2.2 Store 
16.2.3 Host 
16.2.4 Driver 
16.2.5 Provisioner 
16.2.6 Machine运行流程 
16.3 Machine与Swarm的结合 
16.4 总结


第17章 Compose架构设计与实现 
17.1 引言 
17.2 Compose介绍 
17.3 Compose架构 
17.4 Compose评价 
17.4.1 Compose单机能力 
17.4.2 Compose跨节点能力 
17.4.3 Compose与Swarm 
17.5 总结

如有需求您可以发送邮件致:need@glxxw2018.com(仅限本站无法查询到的资料,本站有的或因版权问题无法下载的一律不回复);本站能够查询到的资料请关注“工联信息网”公众号,通过资料页面提供的资源码查询!。

如果认为资源侵犯了您的版权,您可以将相关著作权材料发送致邮箱:accusation@glxxw2018.com,管理员会在1个工作日内删除。

本站资源来源于互联网,如果您喜欢,请支持正版,谢谢!

下一篇:Docker实战.pdf
关注“工联信息网”微信公众号回复“gMu7upvMkA”即可获取!
评论
 我想说:
==已经到底了==
工联信息网
如有问题请致邮箱:need@glxxw2018.com(仅限本站无法查询到的资料);本站能够查询到的资料请关注“工联信息网”公众号,通过页面提供的资源码查询!
不良信息反馈及侵权投诉建议请致邮箱:accusation@glxxw2018.com