网站
更多书籍点击进入 >> <font color=blue>CiCi 岛 </font>
下载
<font color=red>电子版仅供预览及学习交流使用,下载后请 24 小时内删除,支持正版,喜欢的请购买正版书籍</font>
- <font color=blue> 电子书下载 </font>(皮皮云盘 - 点击“普通下载”)
- <font color=blue> 购买正版 </font>
封页
编辑推荐
容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行对 IT 从业者来说,掌握容器技术是市场的需要,也是提升自我价值的重要途径每一轮新技术的兴起,无论对公司还是个人既是机会也是挑战
内容简介
Docker 和容器技术是当下 火的 IT 技术,无论是互联网还是传统企业都在研究和实践如何用容器构建自己的 IT 基础设施。学习本书能够让读者少走弯路,系统地学习、掌握和实践 Docker 和容器技术。本书共分为三部分。部分介绍容器技术生态环境。第二部分是容器核心知识,包括架构、镜像、容器、网络和存储。第三部分是容器进阶知识,包括多主机管理、跨主机网络方案、监控、日志管理和数据管理。读者在学习的过程中,可以跟着教程进行操作,在实践中掌握 Docker 容器技术的核心技能。在之后的工作中,可以将本教程作为参考书,按需查找相关知识点。本书主要面向微服务软件开发人员,以及 IT 实施和运维工程师等相关人员,也适合高等院校和培训学校相关专业的师生教学参考。
作者简介
CloudMan,十多年 IT 从业经验,就职于国际知名 IT 企业,从事 IT 基础设施实施服务,项目涉及服务器、存储、网络、虚拟化、云技术等各个方面。CloudMan 对新技术长期保持浓厚的兴趣和学习热情,十几年来一直专注 IT 技术领域的钻研与实践。
目 录
<p> 目 录 </p>
<p> 第一篇 启 程 </p>
<p> 第 1 章 鸟瞰容器生态系统 3</p>
<p>1.1 容器生态系统 3</p>
<p>1.2 本教程覆盖的知识范围 10</p>
<p>1.3 准备实验环境 10</p>
<p>1.3.1
环境选择 10</p>
<p>1.3.2
安装 Docker 10</p>
<p>1.4 运行第一个容器 11</p>
<p>1.5 小结 12</p>
<p> 第二篇 容器技术 </p>
<p> 第 2 章 容器核心知识概述 15</p>
<p>2.1
What ——
什么是容器 15</p>
<p>2.2
Why ——
为什么需要容器 16</p>
<p>2.2.1
容器解决的问题 16</p>
<p>2.2.2
Docker 的特性 20</p>
<p>2.2.3
容器的优势 20</p>
<p>2.3
How ——
容器是如何工作的 21</p>
<p>2.4 小结 24</p>
<p> 第 3 章 Docker 镜像 26</p>
<p>3.1 镜像的内部结构 26</p>
<p>3.1.1
hello-world ——
最小的镜像 26</p>
<p>3.1.2
base 镜像 27</p>
<p>3.1.3
镜像的分层结构 30</p>
<p>3.2 构建镜像 32</p>
<p>3.2.1
docker commit 32</p>
<p>3.2.2
Dockerfile 34</p>
<p>3.3
RUN vs CMD vs ENTRYPOINT 42</p>
<p>3.3.1
Shell 和 Exec 格式 42</p>
<p>3.3.2
RUN 44</p>
<p>3.3.3
CMD 44</p>
<p>3.3.4
ENTRYPOINT 45</p>
<p>3.3.5
最佳实践 46</p>
<p>3.4 分发镜像 46</p>
<p>3.4.1
为镜像命名 46</p>
<p>3.4.2
使用公共 Registry 49</p>
<p>3.4.3
搭建本地 Registry 51</p>
<p>3.5 小结 52</p>
<p> 第 4 章 Docker 容器 55</p>
<p>4.1 运行容器 55</p>
<p>4.1.1
让容器长期运行 56</p>
<p>4.1.2
两种进入容器的方法 57</p>
<p>4.1.3
运行容器的最佳实践 59</p>
<p>4.1.4
容器运行小结 59</p>
<p>4.2
stop/start/restart 容器 60</p>
<p>4.3
pause / unpause 容器 61</p>
<p>4.4 删除容器 61</p>
<p>4.5
State Machine 62</p>
<p>4.6 资源限制 65</p>
<p>4.6.1
内存限额 65</p>
<p>4.6.2
CPU 限额 66</p>
<p>4.6.3
Block IO 带宽限额 68</p>
<p>4.7 实现容器的底层技术 69</p>
<p>4.7.1
cgroup 70</p>
<p>4.7.2
namespace 70</p>
<p>4.8 小结 72</p>
<p> 第 5 章 Docker 网络 74</p>
<p>5.1
none 网络 74</p>
<p>5.2
host 网络 75</p>
<p>5.3
bridge 网络 76</p>
<p>5.4
user-defined 网络 78</p>
<p>5.5 容器间通信 84</p>
<p>5.5.1
IP 通信 84</p>
<p>5.5.2
Docker DNS Server 85</p>
<p>5.5.3
joined 容器 85</p>
<p>5.6 将容器与外部世界连接 87</p>
<p>5.6.1
容器访问外部世界 87</p>
<p>5.6.2
外部世界访问容器 90</p>
<p>5.7 小结 91</p>
<p> 第 6 章 Docker 存储 92</p>
<p>6.1
storage driver 92</p>
<p>6.2
Data Volume 94</p>
<p>6.2.1
bind mount 94</p>
<p>6.2.2
docker managed volume 96</p>
<p>6.3 数据共享 99</p>
<p>6.3.1
容器与 host 共享数据 99</p>
<p>6.3.2
容器之间共享数据 99</p>
<p>6.4
volume container 100</p>
<p>6.5
data-packed volume container 102</p>
<p>6.6
Data Volume 生命周期管理 103</p>
<p>6.6.1
备份 104</p>
<p>6.6.2
恢复 104</p>
<p>6.6.3
迁移 104</p>
<p>6.6.4
销毁 104</p>
<p>6.7 小结 105</p>
<p> 第三篇 容器进阶知识 </p>
<p> 第 7 章 多主机管理 109</p>
<p>7.1 实验环境描述 110</p>
<p>7.2 安装 Docker
Machine 111</p>
<p>7.3 创建 Machine
112</p>
<p>7.4 管理 Machine 114</p>
<p> 第 8 章 容器网络 117</p>
<p>8.1
libnetwork & CNM 117</p>
<p>8.2 overlay
119</p>
<p>8.2.1
实验环境描述 120</p>
<p>8.2.2
创建 overlay 网络 121</p>
<p>8.2.3
在 overlay 中运行容器 122</p>
<p>8.2.4
overlay 网络连通性 124</p>
<p>8.2.5
overlay 网络隔离 126</p>
<p>8.2.6
overlay IPAM 127</p>
<p>8.3
macvlan 127</p>
<p>8.3.1
准备实验环境 127</p>
<p>8.3.2
创建 macvlan 网络 128</p>
<p>8.3.3
macvlan 网络结构分析 130</p>
<p>8.3.4
用 sub-interface 实现多 macvlan 网络 131</p>
<p>8.3.5
macvlan 网络间的隔离和连通 132</p>
<p>8.4
flannel 136</p>
<p>8.4.1
实验环境描述 137</p>
<p>8.4.2
安装配置 etcd 137</p>
<p>8.4.3
build flannel 138</p>
<p>8.4.4
将 flannel 网络的配置信息保存到 etcd 139</p>
<p>8.4.5
启动 flannel 139</p>
<p>8.4.6
配置 Docker 连接 flannel 141</p>
<p>8.4.7
将容器连接到 flannel 网络 143</p>
<p>8.4.8
flannel 网络连通性 144</p>
<p>8.4.9
flannel 网络隔离 146</p>
<p>8.4.10
flannel 与外网连通性 146</p>
<p>8.4.11
host-gw backend 146</p>
<p>8.5
weave 148</p>
<p>8.5.1
实验环境描述 148</p>
<p>8.5.2
安装部署 weave 149</p>
<p>8.5.3
在 host1 中启动 weave 149</p>
<p>8.5.4
在 host1 中启动容器 150</p>
<p>8.5.5
在 host2 中启动 weave 并运行容器 153</p>
<p>8.5.6
weave 网络连通性 154</p>
<p>8.5.7
weave 网络隔离 155</p>
<p>8.5.8
weave 与外网的连通性 156</p>
<p>8.5.9
IPAM 158</p>
<p>8.6
calico 158</p>
<p>8.6.1
实验环境描述 159</p>
<p>8.6.2
启动 etcd 159</p>
<p>8.6.3
部署 calico 160</p>
<p>8.6.4
创建 calico 网络 161</p>
<p>8.6.5
在 calico 中运行容器 161</p>
<p>8.6.6
calico 默认连通性 164</p>
<p>8.6.7
calico policy 167</p>
<p>8.6.8
calico IPAM 169</p>
<p>8.7 比较各种网络方案 170</p>
<p>8.7.1
网络模型 171</p>
<p>8.7.2
Distributed Store 171</p>
<p>8.7.3
IPAM 171</p>
<p>8.7.4
连通与隔离 172</p>
<p>8.7.5
性能 172</p>
<p> 第 9 章 容器监控 173</p>
<p>9.1
Docker 自带的监控子命令 173</p>
<p>9.1.1
ps 173</p>
<p>9.1.2
top 174</p>
<p>9.1.3
stats 175</p>
<p>9.2
sysdig 175</p>
<p>9.3
Weave Scope 179</p>
<p>9.3.1
安装 179</p>
<p>9.3.2
容器监控 181</p>
<p>9.3.3
监控 host 184</p>
<p>9.3.4
多主机监控 186</p>
<p>9.4
cAdvisor 189</p>
<p>9.4.1
监控 Docker Host 189</p>
<p>9.4.2
监控容器 191</p>
<p>9.5
Prometheus 194</p>
<p>9.5.1
架构 194</p>
<p>9.5.2
多维数据模型 195</p>
<p>9.5.3
实践 196</p>
<p>9.6 比较不同的监控工具 204</p>
<p>9.7 几点建议 205</p>
<p> 第 10 章 日志管理 207</p>
<p>10.1
Docker logs 207</p>
<p>10.2
Docker logging driver 209</p>
<p>10.3
ELK 211</p>
<p>10.3.1
日志处理流程 211</p>
<p>10.3.2
安装 ELK 套件 212</p>
<p>10.3.3
Filebeat 214</p>
<p>10.3.4
管理日志 216</p>
<p>10.4
Fluentd 220</p>
<p>10.4.1
安装 Fluentd 221</p>
<p>10.4.2
重新配置 Filebeat 221</p>
<p>10.4.3
监控容器日志 221</p>
<p>10.5
Graylog 222</p>
<p>10.5.1
Graylog 架构 222</p>
<p>10.5.2
部署 Graylog 223</p>
<p>10.5.3
配置 Graylog 225</p>
<p>10.5.4
监控容器日志 227</p>
<p>10.6
小结 229</p>
<p> 第 11 章 数据管理 230</p>
<p>11.1
从一个例子开始 230</p>
<p>11.2
实践 Rex-Ray driver 232</p>
<p>11.2.1
安装 Rex-Ray 232</p>
<p>11.2.2
配置 VirtualBox 234</p>
<p>11.2.3
创建 Rex-Ray volume 236</p>
<p>11.2.4
使用 Rex-Ray volume 237</p>
<p> 写在最后 243</p>
前 言
<p> 前 言 </p>
<p> 写在最前面 </p>
<p>《每天 5 分钟玩转 Docker 容器技术》是一个有关容器技术的教程,有下面两个特点:</p>
<p>1. 系统讲解当前最流行的容器技术 </p>
<p> 从容器的整个生态环境到各种具体的技术,从整体到细节逐一讨论。</p>
<p>2. 重实践并兼顾理论 </p>
<p> 从实际操作的角度带领大家学习容器技术。</p>
<p> 为什么要写这个 </p>
<p> 简单回答是:容器技术非常热门,但门槛高。</p>
<p> 容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行。</p>
<p> 对 IT 行业来说,这是一项非常有价值的技术。而对 IT 从业者来说,掌握容器技术是市场的需要,也是提升自我价值的重要途径。</p>
<p> 拿我自己的工作经历来说,毕业后的头几年是做 J2EE 应用开发。后来到一家大型 IT 公司,公司的产品从中间件到操作系统、从服务器到存储、从虚拟化到云计算都有涉及。</p>
<p> 我所在的部门是专门做 IT 基础设施实施服务的,最开始是做传统的 IT 项目,包括服务器配置,双机 HA 等。随着虚拟化技术成熟,工作上也开始涉及各种虚拟化技术的规划和实施,包括 VMWare、KVM、PowerVM 等。后来云计算兴起,在公司业务和个人兴趣的驱动下,开始学习和实践 OpenStack,在这个过程中写了《每天 5 分钟玩转 OpenStack》教程并得到大家的认可。</p>
<p> 现在以 Docker 为代表的容器技术来了,而且关注度越来越高,这一点可以从 Google Trend 中 Docker 的搜索上升趋势中清楚看到,如下图所示(图中曲线上扬最高的为 Docker)。</p>
<p> </p>
<p> 每一轮新技术的兴起,无论对公司还是个人既是机会也是挑战。</p>
<p> 我个人的看法是:如果某项新技术未来将成为主流,就应该及早尽快掌握。
因为:</p>
<p>1. 新技术意味着新的市场和新的需求 </p>
<p> 初期掌握这种技术的人不会很多,而市场需求会越来越大,因而会形成供不应求的卖方市场,物以稀为贵,这对技术人员将是一个难得的价值提升机会。</p>
<p>2. 学习新技术需要时间和精力,早起步早成材 </p>
<p> 机会讲过了,咱们再来看看挑战。</p>
<p> 新技术往往意味着技术上的突破和创新,会有不少新的概念和方法,而且从大数据、云计算和容器技术来看,这些新技术都是平台级别,覆盖的技术范围非常广,包括计算、网络、存储、高可用、监控、安全等多个方面,要掌握这些新技术对 IT 老兵尚有不小困难,更别说新人了。</p>
<p> 由于对技术一直保持着很高的热诚和执着,在掌握了 OpenStack 相关 IaaS 技术后,我便开始调研 PaaS 技术栈。正好这时 Docker 也越来越流行,自然而然便开始了容器相关技术的学习研究和实践。</p>
<p> 学习容器技术的过程可以说是惊喜不断,经常惊叹于容器理念的先进和容器生态环境的完整和强大。很多传统软件开发和运维中的难题在容器世界里都能轻松解决,也渐渐理解了容器为何如此受到青睐。</p>
<p> 不夸张地说,容器为我打开了一扇通往另一个软件世界的大门,让我沉浸其中,激动不已。高兴之余,我也迫不及待地想把我所看到、所学到和所想到的有关容器的知识介绍给更多的人,让更多的 IT 工程师能够从容器技术中受益。
</p>
<p> 我希望这个教程也能为大家打开这扇门,降低学习的曲线,系统地学习和掌握容器技术。</p>
<p> 写给谁看 </p>
<p> 这套教程的目标读者包括:</p>
<p>1. 软件开发人员 </p>
<p> 相信微服务架构(Microservice Architectur)会逐渐成为开发应用系统的主流,而容器则是这种架构的基石。市场将需要更多能够开发出基于容器的应用程序的软件开发人员。</p>
<p>2. IT 实施和运维工程师 </p>
<p> 容器为应用提供了更好的打包和部署方式,越来越多的应用将以容器的方式在开发、测试和生产环境中运行。掌握容器相关技术将成为实施和运维工程师的核心竞争力。</p>
<p>3. 我自己 </p>
<p> 我坚信最好的学习方法是分享。编写这个教程同时也是对自己学习和实践容器技术的总结。对于知识,只有把它写出来并能够让其他人理解,才能说明真正掌握。</p>
<p> 包含哪些内容 </p>
<p> 本系列教程分为《每天 5 分钟玩转 Docker 容器技术》和《每天 5 分钟玩转 Docker 容器平台》两本,包括以下三大块内容:</p>
<p> </p>
<p> 下面分别介绍各部分包含的内容。</p>
<p>1. 启程 </p>
<p> 如下图所示,“启程”会介绍容器的生态系统,让大家先从整体上了解容器包含哪些技术,各种技术之间的相互关系是什么,然后再来看我们的教程都会涉及生态中的哪些部分。</p>
<p> </p>
<p> 为了让大家尽快对容器有个感性认识,我们会搭建实验环境并运行第一个容器,为之后的学习热身。</p>
<p>2. 容器技术 </p>
<p>“容器技术”主要内容如下图所示,包含“容器核心知识”和“容器进阶知识”两部分。</p>
<p> </p>
<p> 核心知识主要回答有关容器 What、Why 和 How 三方面的问题,其中以 How 为重,将展开讨论架构、镜像、容器、网络和存储。</p>
<p> 进阶知识包括将容器真正用于生成所必需的技术,包括多主机管理、跨主机网络、监控、数据管理、日志管理和安全管理。</p>
<p> 这部分内容将在本书《每天 5 分钟玩转 Docker 容器技术》中详细讨论。</p>
<p>3. 容器平台技术 </p>
<p> 如下图所示,“容器平台技术”包括容器编排引擎、容器管理平台和基于容器的 PaaS。容器平台技术在生态环境中占据着举足轻重的位置,对于容器是否能够落地,是否能应用于生产至关重要。</p>
<p> </p>
<p> 我们将在本系列教程的另一本书《每天 5 分钟玩转 Docker 容器平台》中详细讨论容器编排引擎、容器管理平台和基于容器的 PaaS,学习和实践业界最具代表性的开源产品。</p>
<p> 怎样的编写方式 </p>
<p> 我会继续采用《每天 5 分钟玩转 OpenStack》(本书已在清华出版)的方式,通过大量的实验由浅入深地探讨和实践容器技术,力求达到如下目标:</p>
<p>(1)快速上手:以最直接、最有效的方式让大家把容器用起来。</p>
<p>(2)循序渐进:由易到难、从浅入深,详细分析容器的各种功能和配置使用方法。</p>
<p>(3)理解架构:从设计原理和架构分析入手,深入探讨容器的架构和运行机理。</p>
<p>(4)注重实践:以大量实际操作案例为基础,让大家能够掌握真正的实施技能。</p>
<p> 在内容的发布上还是通过微信公众号(cloudman6)每周一、三、五定期分享。欢迎大家通过公众号提出问题和建议,进行技术交流。</p>
<p> 为什么叫《每天 5 分钟玩转 Docker 容器技术》</p>
<p> 为了降低学习的难度并且考虑到移动端碎片化阅读的特点,每次推送的内容大家只需要花 5 分钟就能看完(注意这里说的是看完,有时候完全理解可能需要更多时间哈),每篇内容包含 1~3 个知识点,这就是我把本书命名为《每天 5 分钟玩转 Docker 容器技术》的原因。虽然是碎片化推送,但整个教程是系统、连贯和完整的,只是化整为零了。</p>
<p> 好了,今天这 5 分钟算是开了个头,下面我们正式开始玩转 Docker 容器技术。</p>
<p> </p>
<p> 编 者 </p>
<p>2017 年 7 月 </p>
媒体评论
评论