欢迎光临
免费的PDF电子书下载网站

Docker实践 第2版 PDF下载

编辑推荐

1.畅销Docker容器实践教程升级版,编写时参考的Docker版本是Docker 1.13;2.114个实战技巧为读者提供解决方案以及一些细节和技巧方面的实践经验;3.提供配套源代码下载。本书详细介绍了一些坚实可靠的、经过检验的Docker技术,如替换虚拟机(VM)、启用微服务架构、高效网络建模、离线生产和建立容器驱动的持续交付过程等,让开发人员能够按照手册风格的“问题-解决方案-讨论”模式探索真实案例,并学习如何将这些经验应用到自己的开发项目中。本书主要内容: 持续集成和交付。 Kubernetes编排工具。

1.畅销Docker容器实践教程升级版,编写时参考的Docker版本是Docker 1.13;

2.114个实战技巧为读者提供解决方案以及一些细节和技巧方面的实践经验;

3.提供配套源代码下载。

本书详细介绍了一些坚实可靠的、经过检验的Docker技术,如替换虚拟机(VM)、启用微服务架构、高效网络建模、离线生产和建立容器驱动的持续交付过程等,让开发人员能够按照手册风格的“问题-解决方案-讨论”模式探索真实案例,并学习如何将这些经验应用到自己的开发项目中。

本书主要内容:

持续集成和交付。

Kubernetes编排工具。

精简云工作流。

swarm集群模式下的Docker。

新兴的*实践和技巧。

本书是专门写给在生产环境中使用Docker的开发人员和工程师的。

作者伊恩·米尔(Ian Miell)和艾丹·霍布森·塞耶斯(Aidan Hobson Sayers)都是经验丰富的基础设施架构师。他们一起使用Docker完成了英国一家大型游戏公司的DevOps转型。

 

内容简介

本书由浅入深地讲解了Docker的相关内容,涵盖从开发环境到DevOps流水线,再一路到生产环境的整个落地过程以及相关的实用技巧。书中介绍Docker的核心概念和架构,以及将Docker和开发环境有机、高效地结合起来的方法,包括背Docker用作轻量级虚拟机、构建容器、宿主机编排、配置管理、精简镜像等。不仅如此,本书还通过“问题-解决方案-讨论”的形式,将Docker如何融入DevOps流水线、如何在生产环境落地等一系列难题拆解成114个相关的实用技巧,为读者提供解决方案以及一些细节和技巧方面的实践经验。阅读本书,读者学到的不只是Docker,还包括持续集成、持续交付、构建和镜像管理、容器编排等相关领域的一线生产经验。本书编写时一些案例参考的Docker版本是Docker 1.13。

本书要求读者具备一定的容器管理和运维的基础知识,适合想要将Docker投入实践的相关技术人员阅读,尤其适合具有中高级DevOps和运维背景的读者阅读。

作者简介

伊恩·米尔(Ian Miell),巴克莱的首席OpenShift架构师,也是一位经验丰富的软件工程师,他是公司中首位发现Docker潜力的人,并且在Docker生态系统中创建了他自己的工具。 艾丹·霍布森·塞耶斯(Aidan Hobson Sayers),对Docker实践的细节有浓厚的兴趣,他经常分析Docker源代码。他和Ian都为Docker的发展贡献了自己的一份力量,对在商业压力开发环境中构建和维护Docker基础设施有着丰富的经验。 译者简介 杨锐,前ThoughtWorks咨询师,DevOps领域持续关注者,曾任某海外大型项目DevOps工程师,对其持续交付、基础设施即代码、流水线即代码等方面进行了持续推动,对云计算、容器化和持续交付等有一定经验。现供职美团点评。 吴佳兴,毕业于华东理工大学计算机系,主要研究方向有运维自动化、云原生基础设施建设和混沌工程等。2014年年底有幸加入DockOne社区,作为译者,利用闲暇时间为社区贡献一些微薄的力量。欢迎邮件联系(wjx_colstu@hotmail.com)。 梁晓勇,毕业于厦门大学,现任齐家网技术总监,DockOne社区编外人员。长期奋战在技术研发第一线,在网络管理、技术开发、架构设计等方面略有心得。热爱互联网技术,积极投身开源社区,对Docker等容器技术具有浓厚兴趣。欢迎邮件联系(sunlxy@yahoo.com)。 黄博文,ThoughtWorks资深软件工程师/咨询师,拥有丰富的敏捷团队工作经验。目前专注于DevOps技术及云端架构,在搭建持续集成及部署平台、自动化构建基础设施、虚拟化环境以及云端运维等方面有着丰富的经验。拥有AWS解决方案架构师以及开发者证书。译作有《Effective JavaScript》《响应式Web设计:HTML5和CSS3实践指南》《C#多线程编程实战》等。个人邮箱为huangbowen521@gmail.com。

伊恩·米尔(Ian Miell),巴克莱的首席OpenShift架构师,也是一位经验丰富的软件工程师,他是公司中首位发现Docker潜力的人,并且在Docker生态系统中创建了他自己的工具。 艾丹·霍布森·塞耶斯(Aidan Hobson Sayers),对Docker实践的细节有浓厚的兴趣,他经常分析Docker源代码。他和Ian都为Docker的发展贡献了自己的一份力量,对在商业压力开发环境中构建和维护Docker基础设施有着丰富的经验。 译者简介 杨锐,前ThoughtWorks咨询师,DevOps领域持续关注者,曾任某海外大型项目DevOps工程师,对其持续交付、基础设施即代码、流水线即代码等方面进行了持续推动,对云计算、容器化和持续交付等有一定经验。现供职美团点评。 吴佳兴,毕业于华东理工大学计算机系,主要研究方向有运维自动化、云原生基础设施建设和混沌工程等。2014年年底有幸加入DockOne社区,作为译者,利用闲暇时间为社区贡献一些微薄的力量。欢迎邮件联系(wjx_colstu@hotmail.com)。 梁晓勇,毕业于厦门大学,现任齐家网技术总监,DockOne社区编外人员。长期奋战在技术研发第一线,在网络管理、技术开发、架构设计等方面略有心得。热爱互联网技术,积极投身开源社区,对Docker等容器技术具有浓厚兴趣。欢迎邮件联系(sunlxy@yahoo.com)。 黄博文,ThoughtWorks资深软件工程师/咨询师,拥有丰富的敏捷团队工作经验。目前专注于DevOps技术及云端架构,在搭建持续集成及部署平台、自动化构建基础设施、虚拟化环境以及云端运维等方面有着丰富的经验。拥有AWS解决方案架构师以及开发者证书。译作有《Effective JavaScript》《响应式Web设计:HTML5和CSS3实践指南》《C#多线程编程实战》等。个人邮箱为huangbowen521@gmail.com。

Docker实践 第2版 PDF下载

目录

第一部分 Docker基础

第1章 Docker初探 3

1.1 Docker是什么以及为什么用Docker 4

1.1.1 Docker是什么 4

1.1.2 Docker有什么好处 6

1.1.3 关键的概念 7

1.2 构建一个Docker应用程序 9

1.2.1 创建新的Docker镜像的方式 10

1.2.2 编写一个Dockerfile 11

1.2.3 构建一个Docker镜像 12

1.2.4 运行一个Docker容器 13

1.2.5 Docker分层 16

1.3 小结 17

第2章 理解Docker——深入引擎室 18

2.1 Docker的架构 18

2.2 Docker守护进程 20

技巧1 向世界开放Docker守护进程 20

技巧2 以守护进程方式运行容器 22

技巧3 将Docker移动到不同分区 25

2.3 Docker客户端 26

技巧4 使用socat监控Docker API流量 26

技巧5 在浏览器中使用Docker 29

技巧6 使用端口连接容器 31

技巧7 允许容器通信 33

技巧8 链接容器实现端口隔离 34

2.4 Docker注册中心 36

技巧9 建立一个本地Docker注册中心 37

2.5 Docker Hub 38

技巧10 查找并运行一个Docker镜像 39

2.6 小结 41

第二部分 Docker与开发

第3章 将Docker用作轻量级虚拟机 45

3.1 从虚拟机到容器 46

技巧11 将虚拟机转换为容器 46

技巧12 类宿主机容器 49

技巧13 将一个系统拆成微服务容器 51

技巧14 管理容器内服务的启动 54

3.2 保存和还原工作成果 57

技巧15 “保存游戏”的方式:廉价的源代码管理 57

技巧16 给Docker打标签 59

技巧17 在Docker Hub上分享镜像 62

技巧18 在构建时指向特定的镜像 64

3.3 进程即环境 65

技巧19 “保存游戏”的方式:在2048里获胜 65

3.4 小结 67

第4章 构建镜像 68

4.1 构建镜像 68

技巧20 使用ADD指令将文件注入镜像里 68

技巧21 不带缓存的重新构建 71

技巧22 清除缓存 73

技巧23 使用build-args实现智能的缓存清除 74

技巧24 使用ADD指令实现智能的缓存清除 78

技巧25 在容器里设置正确的时区 81

技巧26 语言环境管理 83

技巧27 image-steper遍历镜像分层 86

技巧28 ONBUILD指令和golang 90

4.2 小结 93

第5章 运行容器 94

5.1 运行容器 94

技巧29 在Docker里运行GUI 94

技巧30 检查容器 97

技巧31 干净地“杀死”容器 98

技巧32 使用Docker Machine置备Docker宿主机 100

技巧33 带通配符的DNS 104

5.2 卷——持久化问题 105

技巧34 Docker卷——持久化的问题 105

技巧35 通过Resilio Sync 实现的分布式卷 107

技巧36 保留容器的bash历史 109

技巧37 数据容器 111

技巧38 使用SSHFS挂载远程卷 113

技巧39 通过NFS共享数据 115

技巧40 开发工具容器 118

5.3 小结 119

第6章 Docker日常 120

6.1 保持阵型 120

技巧41 运行Docker时不加sudo 120

技巧42 清理容器 121

技巧43 清理卷 123

技巧44 无须停止容器,从容器里解绑 125

技巧45 使用Portainer来管理Docker守护进程 125

技巧46 生成Docker镜像的依赖图 126

技巧47 直接行动:在容器上执行命令 129

技巧48 你在容器里吗 130

6.2 小结 131

第7章 配置管理,让一切井然有序 132

7.1 配置管理和Dockerfile 132

技巧49 使用ENTRYPOINT创建可靠的定制工具 133

技巧50 在构建中指定版本来避免软件包的漂移 134

技巧51 用perl -p -i -e替换文本 136

技巧52 镜像的扁平化 138

技巧53 用Alien管理外来软件包 140

7.2 传统配置管理工具与Docker 142

技巧54 传统方式:搭配make和Docker 142

技巧55 借助Chef Solo构建镜像 145

7.3 小即是美 149

技巧56 让镜像变得更小的技巧 149

技巧57 通过BusyBox和Alpine精简Docker镜像 151

技巧58 Go模型的最小容器 153

技巧59 使用inotifywait给容器瘦身 156

技巧60 大也可以美 159

7.4 小结 161

第三部分 Docker与DevOps

第8章 持续集成:加快开发流水线 165

8.1 Docker Hub自动化构建 165

技巧61 使用Docker Hub工作流 166

8.2 更有效的构建 169

技巧62 使用eatmydata为I/O密集型构建提速 169

技巧63 设置一个软件包缓存用于加快构建速度 171

技巧64 容器里的无头Chrome 174

技巧65 在Docker内部运行Selenium测试 176

8.3 容器化CI过程 181

技巧66 在一个Docker容器里运行Jenkins主服务器 181

技巧67 包含一个复杂的开发环境 183

技巧68 使用Jenkins的Swarm插件扩展CI 188

技巧69 安全地升级容器化Jenkins服务器 191

8.4 小结 195

第9章 持续交付:与Docker原则完美契合 196

9.1 在CD流水线上与其他团队互动 197

技巧70 Docker契约:减少摩擦 197

9.2 推动Docker镜像的部署 199

技巧71 手动同步注册中心镜像 200

技巧72 通过受限连接交付镜像 201

技巧73 以TAR文件方式共享Docker对象 203

9.3 为不同环境配置镜像 205

技巧74 使用etcd通知容器 205

9.4 升级运行中的容器 208

技巧75 使用confd启用零停机时间切换 209

9.5 小结 213

第10章 网络模拟:无痛的现实环境测试 214

10.1 容器通信:超越手工链接 214

技巧76 一个简单的Docker Compose集群 214

技巧77 一个使用Docker Compose的SQLite服务器 218

10.2 使用Docker模拟真实世界的网络 222

技巧78 使用Comcast模拟有问题的网络 223

技巧79 使用Blockade模拟有问题的网络 226

10.3 Docker和虚拟网络 230

技巧80 创建另一个Docker虚拟网络 231

技巧81 使用Weave建立一个基底网络 234

10.4 小结 237

第四部分 从单机到云的编排

第11章 容器编排入门 241

11.1 简单的单台宿主机 242

技巧82 使用systemd管理宿主机上的容器 242

技巧83 编排宿主机上的容器的启动 246

11.2 手动多宿主机Docker 249

技巧84 使用Helios手动管理多宿主机Docker 249

11.3 服务发现:我们有什么 254

技巧85 使用Consul发现服务 255

技巧86 使用Registrator进行自动化服务注册 262

11.4 小结 264

第12章 使用Docker实现数据中心即操作系统 265

12.1 多宿主机Docker 265

技巧87 swarm模式的无缝Docker集群 265

技巧88 使用Kubernetes集群 269

技巧89 在pod内访问Kubernetes API 274

技巧90 使用OpenShift在本地运行AWS API 277

技巧91 在Mesos上构建框架 283

技巧92 使用Marathon细粒度管理Mesos 290

12.2 小结 293

第13章 Docker平台 294

13.1 组织选择的因素 295

13.1.1 投放到市场的时间 297

13.1.2 购买与构建 297

13.1.3 单体与零散 298

13.1.4 开源与授权 299

13.1.5 安全态度 299

13.1.6 消费者独立性 300

13.1.7 云策略 300

13.1.8 组织结构 300

13.1.9 多平台? 300

13.1.10 组织选择因素结论 301

13.2 采用Docker时需要考虑的方面 301

13.2.1 安全与控制 301

13.2.2 构建和分发镜像 307

13.2.3 运行容器 309

13.3 供应商、组织和产品 311

13.3.1 云原生计算基金会(CNCF) 311

13.3.2 Docker公司 313

13.3.3 谷歌 313

13.3.4 微软 313

13.3.5 亚马逊 314

13.3.6 Red Hat 314

13.4 小结 315

第五部分 生产环境中的Docker

第14章 Docker与安全 319

14.1 Docker访问权限及其意味着什么 319

你在乎吗 320

14.2 Docker中的安全手段 320

技巧93 限制能力 321

技巧94 扫描一个“坏”Docker镜像 324

14.3 保卫对于Docker的使用 325

技巧95 Docker实例上的HTTP认证 326

技巧96 保护Docker API 329

14.4 Docker外部的安全性 333

技巧97 使用DockerSlim来减少容器攻击者的攻击面 333

技巧98 去除在构建中加入的密码 338

技巧99 OpenShift—— 一个应用程序平台即服务 342

技巧100 使用安全选项 350

14.5 小结 357

第15章 一帆风顺:在生产环境中运行Docker 358

15.1 监控 358

技巧101 记录容器的日志到宿主机的syslog 358

技巧102 记录Docker日志的输出 361

技巧103 使用cAdvisor监控容器 363

15.2 资源控制 365

技巧104 限制容器可以运行的内核 365

技巧105 给重要的容器更多CPU 366

技巧106 限制容器的内存使用 367

15.3 Docker的系统管理员用例 369

技巧107 使用Docker运行cron作业 369

技巧108 通过“保存游戏”的方法来备份 372

15.4 小结 374

第16章 Docker生产环境实践——应对各项挑战 375

16.1 性能:不能忽略宿主机 375

技巧109 从容器访问宿主机资源 375

技巧110 禁用内存溢出杀手 379

16.2 在容器出问题时——调试Docker 381

技巧111 使用nsenter调试容器的网络 381

技巧112 无须重新配置,使用tcpflow进行实时调试 384

技巧113 调试在特定宿主机上出问题的容器 386

技巧114 从镜像中提取文件 389

16.3 小结 391

附录A 安装并使用Docker 392

A.1 虚拟机的方式 392

A.2 连接到外部Docker服务器的Docker客户端 393

A.3 原生Docker客户端和虚拟机 393

Windows上的Docker 393

A.4 获得帮助 395

附录B Docker配置 396

B.1 配置Docker 396

B.2 重启Docker 397

B.2.1 使用systemctl重启 397

B.2.2 重启服务 398

附录C Vagrant 399

C.1 设置 399

C.2 图形用户界面 399

C.3 内存 400







Docker实践 第2版 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Docker实践 第2版