第一部分 Docker深入解读 2
第1章 从容器到容器云 2
1.1 云计算平台 2
1.2 容器,新的革命 3
1.3 进化:从容器到容器云 7
第2章 Docker基础 8
2.1 Docker的安装 8
2.2 Docker操作参数解读 9
2.3 搭建你的第一个Docker应用栈 16
2.3.1 Docker集群部署 16
2.3.2 第一个Hello World 17
2.3.3 开发、测试和发布一体化 27
第3章 Docker核心原理解读 28
3.1 Docker背后的内核知识 28
3.1.1 namespace资源隔离 28
3.1.2 cgroups资源限制 45
3.2 Docker架构概览 53
3.2.1 Docker daemon 54
3.2.2 Docker client 54
3.2.3 镜像管理 54
3.2.4 execdriver、volumedriver、graphdriver 55
3.2.5 network 55
3.3 client和daemon 56
3.3.1 client模式 56
3.3.2 daemon模式 58
3.3.3 从client到 daemon 64
3.4 libcontainer 67
3.4.1 libcontainer的工作方式 69
3.4.2 libcontainer实现原理 70
3.4.3 使用runC与libcontainer进行交互 75
3.5 Docker镜像管理 77
3.5.1 什么是Docker镜像 77
3.5.2 Docker镜像关键概念 80
3.5.3 Docker镜像构建操作 81
3.5.4 Docker镜像的分发方法 84
3.6 Docker存储管理 87
3.6.1 Docker镜像元数据管理 87
3.6.2 Docker存储驱动 89
3.7 Docker数据卷 99
3.7.1 数据卷的使用方式 100
3.7.2 数据卷原理解读 105
3.8 Docker网络管理 108
3.8.1 Docker网络基础 108
3.8.2 Docker daemon网络配置原理 116
3.8.3 libcontainer网络配置原理 119
3.8.4 传统的link原理解析 125
3.8.5 新的link介绍 127
3.9 Docker与容器安全 129
3.9.1 Docker的安全机制 129
3.9.2 Docker安全问题 135
3.9.3 Docker安全的解决方案 139
第4章 Docker高级实践技巧 151
4.1 容器化思维 151
4.1.1 SSH服务器的替代方案 151
4.1.2 Docker内应用日志管理方案 152
4.1.3 容器化思维及更多 153
4.2 Docker高级网络实践 153
4.2.1 玩转Linux network namespace 154
4.2.2 pipework原理解析 159
4.2.3 pipework跨主机通信 165
4.2.4 OVS划分VLAN 170
4.2.5 OVS隧道模式 174
4.3 Dockerfile最佳实践 187
4.3.1 Dockerfile的使用 187
4.3.2 Dockerfile实践心得 191
4.4 Docker容器的监控手段 193
4.4.1 Docker容器监控维度 194
4.4.2 容器监控命令 195
4.4.3 常用的容器监控工具 197
4.5 容器化应用构建的基础:高可用配置中心 201
4.5.1 etcd经典应用场景 201
4.5.2 etcd实现原理 206
第二部分 Docker云平台解读 222
第5章 构建自己的容器云 222
5.1 再谈云平台的层次架构 222
5.2 从小工到专家 225
第6章 专注编排与部署:三剑客与Fleet 230
6.1 编排小神器Fig/Compose 230
6.1.1 再谈容器编排与部署 230
6.1.2 Compose原理:一探究竟 233
6.2 跨平台宿主环境管理工具Machine 237
6.2.1 Machine与虚拟机软件 237
6.2.2 Machine与IaaS平台 238
6.2.3 Machine小结 239
6.3 集群抽象工具Swarm 240
6.3.1 Swarm简介 240
6.3.2 试用Swarm 241
6.3.3 Swarm集群的多种创建方式 243
6.3.4 Swarm对请求的处理 245
6.3.5 Swarm集群的调度策略 245
6.3.6 Swarm集群高可用(HA) 246
6.3.7 Swarm与Machine 247
6.3.8 Swarm小结 248
6.4 编排之秀Fleet 248
6.4.1 旧问题新角度:Dockerdistro 249
6.4.2 Fleet的原理剖析 252
第7章 专注应用支撑和运行时:Flynn和Deis 258
7.1 Flynn,一个小而美的两层架构 258
7.1.1 第0层:容器云的基础设施 259
7.1.2 第1层:容器云的功能框架 259
7.1.3 Flynn体系架构与实现原理 260
7.2 谈谈Deis与Flynn 270
7.2.1 应用发布上的比较 271
7.2.2 关于Deis的一些思考 273
第8章 一切皆容器:Kubernetes 274
8.1 Kubernetes是个什么样的项目 274
8.2 Kubemetes的设计解读 275
8.2.1 一个典型案例:Guestbook 275
8.2.2 pod设计解读 277
8.2.3 replication controller设计解读 288
8.2.4 service的设计解读 294
8.2.5 新一代副本控制器replica set 306
8.2.6 Deployment 307
8.2.7 DaemonSet 312
8.2.8 ConfigMap 312
8.2.9 Job 317
8.2.10 Horizontal Pod Autoscaler 318
8.3 Kubernetes核心组件解读 320
8.3.1 Kubernetes的整体架构 320
8.3.2 APIServer 321
8.3.3 scheduler 328
8.3.4 controller manager 338
8.3.5 kubelet 346
8.3.6 kube-proxy 352
8.3.7 核心组件协作流程 362
8.4 Kubernetes存储核心原理 366
8.4.1 volume设计解读 366
8.4.2 volume实现原理分析 367
8.4.3 volume使用案例 368
8.4.4 persistent volume 371
8.5 Kubernetes网络核心原理 372
8.5.1 单pod单IP模型 373
8.5.2 pod和网络容器 374
8.5.3 实现Kubernetes的网络模型 377
8.6 Kubernetes多租户管理与资源控制 381
8.6.1 namespace设计解读 381
8.6.2 Kubernetes用户认证机制 385
8.6.3 Kubernetes用户授权机制 387
8.6.4 Kubernetes多维资源管理机制admission control 390
8.7 Kubernetes高级实践 402
8.7.1 应用健康检查 402
8.7.2 高可用性 405
8.7.3 日志 408
8.7.4 集成DNS 410
8.7.5 容器上下文环境 412
8 8 Kubernetes未来动向 414
8.8.1 Ubernetes 414
8.8.2 petSet 415
8.8.3 performance 417
8.8.4 rescheduler 417
8.8.5 OCI标准 419
8.9 不要停止思考 419
第三部分 附录 424
附录A Docker的安装 424
附录B 阅读Docker源代码的神兵利器 432
附录C 快速熟悉开源项目 441
附录D cgroups的测试与使用 444
附录E cgroups子系统配置参数介绍 448
附录F Kubernetes的安装 453
后记 457