更新时间:2018-12-31 20:27:53
封面
版权信息
赞誉
序
前言
第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 提取环境变量