容器技术是继互联网大数据和云计算技术以后又一趋之若鹜的技术性,并且将来非常一段时间内都是十分时兴对IT从业人员而言,把握容器技术是销售市场的必须,也是提升自我使用价值的有效途径每一轮新技术应用的盛行,不管对企业還是本人既是机遇也是挑戰
Docker和容器技术是时下*火的IT技术性,不论是互联网技术還是传统式公司都会科学研究和实践活动怎样用容器搭建自身的IT基础设施建设。学习这书可以让读者事半功倍,系统化学习、把握和实践活动Docker和容器技术。这书共分成三一部分。*一部分详细介绍容器技术生态环境保护。第二一部分是容器关键专业知识,包含构架、镜像系统、容器、互联网和储存。第三一部分是容器升阶专业知识,包含多服务器管理方法、跨服务器互联网计划方案、监控器、日志管理和数据库管理。读者在学习的全过程中,能够跟随实例教程开展实际操作,结合实际把握Docker容器技术的关键专业技能。在以后的工作上,能够将本实例教程做为教材,按需搜索相关知识要点。这书关键朝向微服务手机软件开发者,及其IT执行和运营工程师等相关工作人员,也合适高等学校和培训机构相关技术专业的老师学生课堂教学参照。
目录
- 第一篇 启 程
- 第1章 鸟瞰容器生态系统 3
- 1.1 容器生态系统 3
- 1.2 本教程覆盖的知识范围 10
- 1.3 准备实验环境 10
- 1.3.1 环境选择 10
- 1.3.2 安装 Docker 10
- 1.4 运行第一个容器 11
- 1.5 小结 12
- 第二篇 容器技术
- 第2章 容器核心知识概述 15
- 2.1 What ——什么是容器 15
- 2.2 Why ——为什么需要容器 16
- 2.2.1 容器解决的问题 16
- 2.2.2 Docker 的特性 20
- 2.2.3 容器的优势 20
- 2.3 How ——容器是如何工作的 21
- 2.4 小结 24
- 第3章 Docker 镜像 26
- 3.1 镜像的内部结构 26
- 3.1.1 hello-world ——最小的镜像 26
- 3.1.2 base 镜像 27
- 3.1.3 镜像的分层结构 30
- 3.2 构建镜像 32
- 3.2.1 docker commit 32
- 3.2.2 Dockerfile 34
- 3.3 RUN vs CMD vs ENTRYPOINT 42
- 3.3.1 Shell 和 Exec 格式 42
- 3.3.2 RUN 44
- 3.3.3 CMD 44
- 3.3.4 ENTRYPOINT 45
- 3.3.5 最佳实践 46
- 3.4 分发镜像 46
- 3.4.1 为镜像命名 46
- 3.4.2 使用公共 Registry 49
- 3.4.3 搭建本地 Registry 51
- 3.5 小结 52
- 第4章 Docker 容器 55
- 4.1 运行容器 55
- 4.1.1 让容器长期运行 56
- 4.1.2 两种进入容器的方法 57
- 4.1.3 运行容器的最佳实践 59
- 4.1.4 容器运行小结 59
- 4.2 stop/start/restart 容器 60
- 4.3 pause / unpause 容器 61
- 4.4 删除容器 61
- 4.5 State Machine 62
- 4.6 资源限制 65
- 4.6.1 内存限额 65
- 4.6.2 CPU 限额 66
- 4.6.3 Block IO 带宽限额 68
- 4.7 实现容器的底层技术 69
- 4.7.1 cgroup 70
- 4.7.2 namespace 70
- 4.8 小结 72
- 第5章 Docker 网络 74
- 5.1 none 网络 74
- 5.2 host 网络 75
- 5.3 bridge 网络 76
- 5.4 user-defined 网络 78
- 5.5 容器间通信 84
- 5.5.1 IP通信 84
- 5.5.2 Docker DNS Server 85
- 5.5.3 joined 容器 85
- 5.6 将容器与外部世界连接 87
- 5.6.1 容器访问外部世界 87
- 5.6.2 外部世界访问容器 90
- 5.7 小结 91
- 第6章 Docker 存储 92
- 6.1 storage driver 92
- 6.2 Data Volume 94
- 6.2.1 bind mount 94
- 6.2.2 docker managed volume 96
- 6.3 数据共享 99
- 6.3.1 容器与 host 共享数据 99
- 6.3.2 容器之间共享数据 99
- 6.4 volume container 100
- 6.5 data-packed volume container 102
- 6.6 Data Volume 生命周期管理 103
- 6.6.1 备份 104
- 6.6.2 恢复 104
- 6.6.3 迁移 104
- 6.6.4 销毁 104
- 6.7 小结 105
- 第三篇 容器进阶知识
- 第7章 多主机管理 109
- 7.1 实验环境描述 110
- 7.2 安装 DockerMachine 111
- 7.3 创建 Machine112
- 7.4 管理Machine 114
- 第8章 容器网络 117
- 8.1 libnetwork & CNM 117
- 8.2 overlay119
- 8.2.1 实验环境描述 120
- 8.2.2 创建overlay网络 121
- 8.2.3 在overlay中运行容器 122
- 8.2.4 overlay 网络连通性 124
- 8.2.5 overlay 网络隔离 126
- 8.2.6 overlay IPAM 127
- 8.3 macvlan 127
- 8.3.1 准备实验环境 127
- 8.3.2 创建 macvlan 网络 128
- 8.3.3 macvlan 网络结构分析 130
- 8.3.4 用 sub-interface 实现多 macvlan 网络 131
- 8.3.5 macvlan 网络间的隔离和连通 132
- 8.4 flannel 136
- 8.4.1 实验环境描述 137
- 8.4.2 安装配置 etcd 137
- 8.4.3 build flannel 138
- 8.4.4 将 flannel 网络的配置信息保存到 etcd 139
- 8.4.5 启动 flannel 139
- 8.4.6 配置 Docker 连接 flannel 141
- 8.4.7 将容器连接到 flannel 网络 143
- 8.4.8 flannel 网络连通性 144
- 8.4.9 flannel 网络隔离 146
- 8.4.10 flannel 与外网连通性 146
- 8.4.11 host-gw backend 146
- 8.5 weave 148
- 8.5.1 实验环境描述 148
- 8.5.2 安装部署 weave 149
- 8.5.3 在host1中启动weave 149
- 8.5.4 在 host1 中启动容器 150
- 8.5.5 在host2中启动weave并运行容器 153
- 8.5.6 weave 网络连通性 154
- 8.5.7 weave 网络隔离 155
- 8.5.8 weave 与外网的连通性 156
- 8.5.9 IPAM 158
- 8.6 calico 158
- 8.6.1 实验环境描述 159
- 8.6.2 启动 etcd 159
- 8.6.3 部署 calico 160
- 8.6.4 创建calico网络 161
- 8.6.5 在 calico 中运行容器 161
- 8.6.6 calico 默认连通性 164
- 8.6.7 calico policy 167
- 8.6.8 calico IPAM 169
- 8.7 比较各种网络方案 170
- 8.7.1 网络模型 171
- 8.7.2 Distributed Store 171
- 8.7.3 IPAM 171
- 8.7.4 连通与隔离 172
- 8.7.5 性能 172
- 第9章 容器监控 173
- 9.1 Docker自带的监控子命令 173
- 9.1.1 ps 173
- 9.1.2 top 174
- 9.1.3 stats 175
- 9.2 sysdig 175
- 9.3 Weave Scope 179
- 9.3.1 安装 179
- 9.3.2 容器监控 181
- 9.3.3 监控 host 184
- 9.3.4 多主机监控 186
- 9.4 cAdvisor 189
- 9.4.1 监控 Docker Host 189
- 9.4.2 监控容器 191
- 9.5 Prometheus 194
- 9.5.1 架构 194
- 9.5.2 多维数据模型 195
- 9.5.3 实践 196
- 9.6 比较不同的监控工具 204
- 9.7 几点建议 205
- 第10章 日志管理 207
- 10.1 Docker logs 207
- 10.2 Docker logging driver 209
- 10.3 ELK 211
- 10.3.1 日志处理流程 211
- 10.3.2 安装 ELK 套件 212
- 10.3.3 Filebeat 214
- 10.3.4 管理日志 216
- 10.4 Fluentd 220
- 10.4.1 安装 Fluentd 221
- 10.4.2 重新配置 Filebeat 221
- 10.4.3 监控容器日志 221
- 10.5 Graylog 222
- 10.5.1 Graylog 架构 222
- 10.5.2 部署 Graylog 223
- 10.5.3 配置 Graylog 225
- 10.5.4 监控容器日志 227
- 10.6 小结 229
- 第11章 数据管理 230
- 11.1 从一个例子开始 230
- 11.2 实践 Rex-Ray driver 232
- 11.2.1 安装 Rex-Ray 232
- 11.2.2 配置 VirtualBox 234
- 11.2.3 创建Rex-Ray volume 236
- 11.2.4 使用 Rex-Ray volume 237
- 写在最后 243