内容简介
第一篇 启程
第1章 鸟瞰容器生态系统
1.1 容器生态系统
1.2 本教程覆盖的知识范围
1.3 准备实验环境
1.3.1 环境选择
1.3.2 安装Docker
1.4 运行第一个容器
1.5 小结
第二篇 容器技术
第2章 容器核心知识概述
2.1 What——什么是容器
2.2 Why——为什么需要容器
2.2.1 容器解决的问题
2.2.2 Docker的特性
2.2.3 容器的优势
2.3 How——容器是如何工作的
2.4 小结
第3章 Docker镜像
3.1 镜像的内部结构
3.1.1 hello-world——最小的镜像
3.1.2 base镜像
3.1.3 镜像的分层结构
3.2 构建镜像
3.2.1 docker commit
3.2.2 Dockerfile
3.3 RUN vs CMD vs ENTRYPOINT
3.3.1 Shell和Exec格式
3.3.2 RUN
3.3.3 CMD
3.3.4 ENTRYPOINT
3.3.5 最佳实践
3.4 分发镜像
3.4.1 为镜像命名
3.4.2 使用公共Registry
3.4.3 搭建本地Registry
3.5 小结
第4章 Docker容器
4.1 运行容器
4.1.1 让容器长期运行
4.1.2 两种进入容器的方法
4.1.3 运行容器的最佳实践
4.1.4 容器运行小结
4.2 stop/start/restart容器
4.3 pause/unpause容器
4.4 删除容器
4.5 State Machine
4.6 资源限制
4.6.1 内存限额
4.6.2 CPU限额
4.6.3 Block IO带宽限额
4.7 实现容器的底层技术
4.7.1 cgroup
4.7.2 namespace
4.8 小结
第5章 Docker网络
5.1 none网络
5.2 host网络
5.3 bridge网络
5.4 user-defined网络
5.5 容器间通信
5.5.1 IP通信
5.5.2 Docker DNS Server
5.5.3 joined容器
5.6 将容器与外部世界连接
5.6.1 容器访问外部世界
5.6.2 外部世界访问容器
5.7 小结
第6章 Docker存储
6.1 storage driver
6.2 Data Volume
6.2.1 bind mount
6.2.2 docker managed volume
6.3 数据共享
6.3.1 容器与host共享数据
6.3.2 容器之间共享数据
6.4 volume container
6.5 data-packed volume container
6.6 Data Volume生命周期管理
6.6.1 备份
6.6.2 恢复
6.6.3 迁移
6.6.4 销毁
6.7 小结
第三篇 容器进阶知识
第7章 多主机管理
7.1 实验环境描述
7.2 安装Docker Machine
7.3 创建Machine
7.4 管理Machine
第8章 容器网络
8.1 libnetwork&CNM
8.2 overlay
8.2.1 实验环境描述
8.2.2 创建overlay网络
8.2.3 在overlay中运行容器
8.2.4 overlay网络连通性
8.2.5 overlay网络隔离
8.2.6 overlay IPAM
8.3 macvlan
8.3.1 准备实验环境
8.3.2 创建macvlan网络
8.3.3 macvlan网络结构分析
8.3.4 用sub-interface实现多macvlan网络
8.3.5 macvlan网络间的隔离和连通
8.4 flannel
8.4.1 实验环境描述
8.4.2 安装配置etcd
8.4.3 build flannel
8.4.4 将flannel网络的配置信息保存到etcd
8.4.5 启动flannel
8.4.6 配置Docker连接flannel
8.4.7 将容器连接到flannel网络
8.4.8 flannel网络连通性
8.4.9 flannel网络隔离
8.4.10 flannel与外网连通性
8.4.11 host-gw backend
8.5 weave
8.5.1 实验环境描述
8.5.2 安装部署weave
8.5.3 在host1中启动weave
8.5.4 在host1中启动容器
8.5.5 在host2中启动weave并运行容器
8.5.6 weave网络连通性
8.5.7 weave网络隔离
8.5.8 weave与外网的连通性
8.5.9 IPAM
8.6 calico
8.6.1 实验环境描述
8.6.2 启动etcd
8.6.3 部署calico
8.6.4 创建calico网络
8.6.5 在calico中运行容器
8.6.6 calico默认连通性
8.6.7 calico policy
8.6.8 calico IPAM
8.7 比较各种网络方案
8.7.1 网络模型
8.7.2 Distributed Store
8.7.3 IPAM
8.7.4 连通与隔离
8.7.5 性能
第9章 容器监控
9.1 Docker自带的监控子命令
9.1.1 ps
9.1.2 top
9.1.3 stats
9.2 sysdig
9.3 Weave Scope
9.3.1 安装
9.3.2 容器监控
9.3.3 监控host
9.3.4 多主机监控
9.4 cAdvisor
9.4.1 监控Docker Host
9.4.2 监控容器
9.5 Prometheus
9.5.1 架构
9.5.2 多维数据模型
9.5.3 实践
9.6 比较不同的监控工具
9.7 几点建议
第10章 日志管理
10.1 Docker logs
10.2 Docker logging driver
10.3 ELK
10.3.1 日志处理流程
10.3.2 安装ELK套件
10.3.3 Filebeat
10.3.4 管理日志
10.4 Fluentd
10.4.1 安装Fluentd
10.4.2 重新配置Filebeat
10.4.3 监控容器日志
10.5 Graylog
10.5.1 Graylog架构
10.5.2 部署Graylog
10.5.3 配置Graylog
10.5.4 监控容器日志
10.6 小结
第11章 数据管理
11.1 从一个例子开始
11.2 实践Rex-Ray driver
11.2.1 安装Rex-Ray
11.2.2 配置VirtualBox
11.2.3 创建Rex-Ray volume
11.2.4 使用Rex-Ray volume
写在最后