书刊介绍
《Docker进阶与实战》内容简介
本书由一个真正钻研容器技术的团队写作,他们不仅仅是在使用Docker,更多的是在探索容器的未来之路,希望把“代码与产品,理论与实践”完美结合。本书内容从Docker的来源、镜像、仓库、安全、网络、卷存储,到生态、测试及社区贡献都有涉猎。无论你是入门级,还是已经有了较深的功底,这本书都会带你踏上新的台阶——正所谓“进阶”。
华为Docker实践小组,致力于容器技术探索,结合华为CT/IT/Mobile等应用场景,重点在容器引擎、仓库、网络和卷存储等多领域攻关;同时该团队遵循开源精神,将开发过程中的诸多价值特性同步贡献到Docker社区中,目前在Docker社区贡献中全球排名稳居前三,国内排名第一。作品目录
序
前言
第1章:Docker简介
1.1、引言
1.1.1、Docker的历史和发展
1.1.2、Docker的架构介绍
1.2、功能和组件
1.2.1、Docker客户端
1.2.2、Docker
daemon
1.2.3、Docker容器
1.2.4、Docker镜像
1.2.5、Registry
1.3、安装和使用
1.3.1、Docker的安装
1.3.2、Docker的使用
1.4、概念澄清
1.4.1、Docker在LXC基础上做了什么工作
1.4.2、Docker容器和虚拟机之间有什么不同
1.5、本章小结
第2章:关于容器技术
2.1、容器技术的前世今生
2.1.1、关于容器技术
2.1.2、容器技术的历史
2.2、一分钟理解容器
2.2.1、容器的组成
2.2.2、容器的创建原理
2.3、Cgroup介绍
2.3.1、Cgroup是什么
2.3.2、Cgroup的接口和使用
2.3.3、Cgroup子系统介绍
2.4、Namespace介绍
2.4.1、Namespace是什么
2.4.2、Namespace的接口和使用
2.4.3、各个Namespace介绍
2.5、容器造就Docker
2.6、本章小结
第3章:理解Docker镜像
3.1、Docker
image概念介绍
3.2、使用Docker
image
3.2.1、列出本机的镜像
3.2.2、Build:创建一个镜像
3.2.3、Ship:传输一个镜像
3.2.4、Run:以image为模板启动一个容器
3.3、Docker
image的组织结构
3.3.1、数据的内容
3.3.2、数据的组织
3.4、Docker
image扩展知识
3.4.1、联合挂载
3.4.2、写时复制
3.4.3、Git式管理
3.5、本章小结
第4章:仓库进阶
4.1、什么是仓库
4.1.1、仓库的组成
4.1.2、仓库镜像
4.2、再看Docker
Hub
4.2.1、Docker
Hub的优点
4.2.2、网页分布
4.2.3、账户管理系统
4.3、仓库服务
4.3.1、Registry功能和架构
4.3.2、Registry
API
4.3.3、Registry
API传输过程分析
4.3.4、鉴权机制
4.4、部署私有仓库
4.4.1、运行私有服务
4.4.2、构建反向代理
4.5、Index及仓库高级功能
4.5.1、Index的作用和组成
4.5.2、控制单元
4.5.3、鉴权模块
4.5.4、数据库
4.5.5、高级功能
4.5.6、Index客户端界面
4.6、本章小结
第5章:Docker网络
5.1、Docker网络现状
5.2、基本网络配置
5.2.1、Docker网络初探
5.2.2、Docker网络相关参数
5.3、高级网络配置
5.3.1、容器跨主机多子网方案
5.3.2、容器跨主机多子网配置方法
5.4、网络解决方案进阶
5.4.1、Weave
5.4.2、Flannel
5.4.3、SocketPlane
5.5、本章小结
第6章:容器卷管理
6.1、Docker卷管理基础
6.1.1、增加新数据卷
6.1.2、将主机目录挂载为数据卷
6.1.3、创建数据卷容器
6.1.4、数据卷的备份、转储和迁移
6.1.5、Docker卷管理的问题
6.2、使用卷插件
6.2.1、卷插件简介
6.2.2、卷插件的使用
6.3、卷插件剖析
6.3.1、卷插件工作原理
6.3.2、卷插件API接口
6.3.3、插件发现机制
6.4、已有的卷插件
6.5、本章小结
第7章:Docker
API
7.1、关于Docker
API
7.1.1、REST简介
7.1.2、Docker
API初探
7.1.3、Docker
API种类
7.2、RESTful
API应用示例
7.2.1、前期准备
7.2.2、Docker
API的基本示例
7.3、API的高级应用
7.3.1、场景概述
7.3.2、场景实现
7.4、本章小结
第8章:Docker安全
8.1、深入理解Docker的安全
8.1.1、Docker的安全性
8.1.2、Docker容器的安全性
8.2、安全策略
8.2.1、Cgroup
8.2.2、ulimit
8.2.3、容器组网
8.2.4、容器+全虚拟化
8.2.5、镜像签名
8.2.6、日志审计
8.2.7、监控
8.2.8、文件系统级防护
8.2.9、capability
8.2.10、SELinux
8.2.11、AppArmor
8.2.12、Seccomp
8.2.13、grsecurity
8.2.14、几个与Docker安全相关的项目
8.3、安全加固
8.3.1、主机逃逸
8.3.2、安全加固之capability
8.3.3、安全加固之SELinux
8.3.4、安全加固之AppArmor
8.4、Docker安全遗留问题
8.4.1、User
Namespace
8.4.2、非root运行Docker
daemon
8.4.3、Docker热升级
8.4.4、磁盘限额
8.4.5、网络I/O
8.5、本章小结
第9章:Libcontainer简介
9.1、引擎的引擎
9.1.1、关于容器的引擎
9.1.2、对引擎的理解
9.2、Libcontainer的技术原理
9.2.1、为容器创建新的命名空间
9.2.2、为容器创建新的Cgroup
9.2.3、创建一个新的容器
9.2.4、Libcontainer的功能
9.3、关于runC
9.3.1、runC和Libcontainer的关系
9.3.2、runC的工作原理
9.3.3、runC的未来
9.4、本章小结
第10章:Docker实战
10.1、Dockerfile简介
10.1.1、一个简单的例子
10.1.2、Dockerfile指令
10.1.3、再谈Docker镜像制作
10.2、基于Docker的Web应用和发布
10.2.1、选择基础镜像
10.2.2、制作HTTPS服务器镜像
10.2.3、将Web源码导入Tomcat镜像中
10.2.4、部署与验证
10.3、为Web站点添加后台服务
10.3.1、代码组织结构
10.3.2、组件镜像制作过程
10.3.3、整体部署服务
10.4、本章小结
第11章:Docker集群管理
11.1、Compose
11.1.1、Compose概述
11.1.2、Compose配置简介
11.2、Machine
11.2.1、Machine概述
11.2.2、Machine的基本概念及运行流程
11.3、Swarm
11.3.1、Swarm概述
11.3.2、Swarm内部架构
11.4、Docker在OpenStack上的集群实战
11.5、本章小结
第12章:Docker生态圈
12.1、Docker生态圈介绍
12.2、重点项目介绍
12.2.1、编排
12.2.2、容器操作系统
12.2.3、PaaS平台
12.3、生态圈的未来发展
12.3.1、Docker公司的发展和完善方向
12.3.2、OCI组织
12.3.3、生态圈格局的分化和发展
12.4、本章小结
第13章:Docker测试
13.1、Docker自身测试
13.1.1、Docker自身的测试框架
13.1.2、运行Docker测试
13.1.3、在容器中手动运行测试用例
13.1.4、运行集成测试中单个或多个测试用例
13.1.5、Docker测试用例集介绍
13.1.6、Docker测试需要改进的方面
13.1.7、构建和测试文档
13.1.8、其他Docker测试套
13.2、Docker技术在测试中的应用
13.2.1、Docker对测试的革命性影响
13.2.2、Docker技术适用范围
13.2.3、Jenkins+Docker自动化环境配置
13.3、本章小结
第14章:参与Docker开发
14.1、改进Docker
14.1.1、报告问题
14.1.2、提交补丁
14.2、编译自己的Docker
14.2.1、使用make工具编译
14.2.2、手动启动容器编译
14.2.3、编译动态链接的可执行文件
14.2.4、跑测试用例及小结
14.3、开源的沟通和交流
14.3.1、Docker沟通和交流的途径
14.3.2、开源沟通和交流的建议
14.4、Docker项目的组织架构
14.4.1、管理模型
14.4.2、组织架构
14.5、本章小章:附录A
FAQ
附录B
常用Dockerfile
附录C
Docker信息获取渠道