新書推薦:
《
微观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:NT$
709.0
《
Python贝叶斯深度学习
》
售價:NT$
407.0
《
文本的密码:社会语境中的宋代文学
》
售價:NT$
306.0
《
启微·狂骉年代:西洋赛马在中国
》
售價:NT$
357.0
《
有趣的中国古建筑
》
售價:NT$
305.0
《
十一年夏至
》
售價:NT$
347.0
《
如何打造成功的商业赛事
》
售價:NT$
407.0
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:NT$
265.0
|
編輯推薦: |
作为一个开源的容器系统,Docker 让部署应用程序变得既平滑又灵活。Docker 强大又易于使用,而且它通过更短的构建周期、更少的产品缺陷、无需费力的应用程序滚动发行,让开发人员和系统管理的工作都更加容易。 这是一本涵盖了101 个技巧的实操指南,读者可以用它来获得Docker 的大部分知识。本书遵循手册风格的问题 解决方案 讨论模式,针对很重要的问题,如轻松的服务器管理和配置、部署微服务、为实验而创建安全的环境等,为读者提供了及时有用的解决方案。在阅读本书的过程中,读者不但能学到Docker 的基础知识,还能学到Docker 的实践,如将Docker 和持续集成过程结合使用、使用Chef 来自动化复杂容器的创建过程以及使用Kubernetes 进行容器编排等。 本书主要内容 ● 加速 DevOps流水线。 ● 成本低廉地替换虚拟机。 ● 提高云端工作流程的效率。 ● 使用 Docker Hub。 ● 引 领到 Docker 生态系统。 本书写给对Docker 感兴趣的人。
|
內容簡介: |
《Docker实践》由浅入深地讲解了Docker的相关内容,涵盖从开发环境到DevOps流水线,再一路到生产环境的整个落地过程以及相关的实用技巧。书中介绍Docker的核心概念和架构,以及将Docker和开发环境有机、高效地结合起来的方法,包括用作轻量级的虚拟机以及构建和宿主机编排、配置管理、精简镜像等。不仅如此,本书还通过问题解决方案讨论的形式,将Docker如何融入DevOps流水线如何在生产环境落地等一系列难题拆解成101个相关的实用技巧,为读者提供解决方案以及一些细节和技巧方面的实践经验。阅读本书,读者将学到的不只是Docker,还包括持续集成、持续交付、构建和镜像管理、容器编排等相关领域的一线生产经验。本书编写时一些案例参考的Docker版本是Docker 1.9。 《Docker实践》要求读者具备一定的容器管理和运维的基础知识,适合想要将Docker投入实践的相关技术人员阅读,尤其适合具有中 高 级DevOps和运维背景的读者阅读。
|
關於作者: |
伊恩米尔(Ian Miell)和艾丹霍布森塞耶斯(Aidan HobsonSayers)对Docker 有所贡献,并且在大规模环境里构建和维护基于Docker 的基础设施方面有丰富的经验。 译者简介 吴佳兴,毕业于华东理工大学计算机系,目前是bilibili 基础平台研发团队的一员,主要研究方向有CI\CD、监控和运维自动化、基于容器的PaaS 平台建设、微服务架构等。2014 年年底有幸加入DockOne 社区,作为译者,利用闲暇时间为社区贡献一些微薄的力量。个人博客。欢迎邮件联系。 黄博文,ThoughtWorks 资 深软件工程师咨询师,担任过开发、测试、运维、技术经理等角色,在国内外多家企业做过技术教练以及技术咨询,拥有丰富的敏捷团队工作经验。目前专注于DevOps 技术及云端架构,在搭建持续集成及部署平台、自动化构建基础设施、虚拟化环境、云端运维等方面有着丰富的经验。拥有AWS 解决方案架构师以及开发 者证书。个人博客为t,个人邮箱为。译作有《Effective JavaScript》《Html5 和CSS3 响应式设计指南》《C#多线程编程实战》《面向对象的思考过程》《基础设施即代码》等。 杨锐,前ThoughtWorks 咨询师,DevOps 领域持续关注者,任职期间曾任某海外大型项目DevOps 工程师,对其持续交付、基础设施即代码、流水线即代码等方面进行了持续推动,对云计算、容器化、持续交付等有一定经验。现供职美团点评。 梁晓勇,毕业于厦门大学,现任某互联网金融公司架构师,DockOne 社区编外人员。长期奋战在技术研发第 一线,在网络管理、技术开发、架构设计等方面略有心得。热爱互联网技术,积极投身开源社区,对Docker 等容器技术具有浓厚兴趣。欢迎邮件联系
|
目錄:
|
第 一部分 Docker基础
第 1章 Docker初探3
1.1Docker是什么以及为什么用Docker4
1.1.1Docker是什么4
1.1.2Docker有什么好处6
1.1.3关键的概念8
1.2构建一个Docker应用程序10
1.2.1创建新的Docker镜像的方式11
1.2.2编写一个Dockerfile11
1.2.3构建一个Docker镜像12
1.2.4运行一个Docker容器14
1.2.5Docker分层16
1.3小结17
第 2章 理解Docker深入引擎室18
2.1Docker的架构18
2.2Docker守护进程20
技巧1向世界开放Docker守护进程20
技巧2以守护进程方式运行容器22
技巧3将Docker移动到不同分区24
2.3Docker客户端25
技巧4使用socat监控Docker API流量25
技巧5使用端口连接容器28
技巧6链接容器实现端口隔离29
技巧7在浏览器中使用Docker31
2.4Docker注册中心33
技巧8建立一个本地Docker注册中心34
2.5Docker Hub34
技巧9查找并运行一个Docker镜像35
2.6小结37
第 二部分 Docker与开发
第3章将Docker用作轻量级虚拟机41
3.1从虚拟机到容器42
技巧10将虚拟机转换为容器42
技巧11类宿主机容器44
技巧12将一个系统拆成微服务容器46
3.2管理容器的服务49
技巧13管理容器内服务的启动50
3.3保存和还原工作成果52
技巧14在开发中保存游戏的方式52
技巧15给Docker打标签54
技巧16在Docker Hub上分享镜像56
技巧17在构建时指向特定的镜像58
3.4进程即环境59
技巧18在开发中保存游戏的方式59
3.5小结61
第4章Docker日常62
4.1卷持久化问题62
技巧19Docker卷持久化的问题63
技巧20通过BitTorrent Sync的分布式卷64
技巧21保留容器的bash历史66
技巧22数据容器68
技巧23使用SSHFS挂载远程卷70
技巧24通过NFS共享数据72
技巧25开发工具容器75
4.2运行容器76
技巧26在Docker里运行GUI76
技巧27检查容器78
技巧28干净地杀掉容器80
技巧29使用Docker Machine来置备Docker宿主机81
4.3构建镜像84
技巧30使用ADD将文件注入到镜像85
技巧31重新构建时不使用缓存87
技巧32拆分缓存89
4.4保持阵型90
技巧33运行Docker时不加sudo90
技巧34清理容器91
技巧35清理卷92
技巧36解绑容器的同时不停掉它94
技巧37使用DockerUI来管理Docker守护进程95
技巧38为Docker镜像生成一个依赖图96
技巧39直接操作对容器执行命令97
4.5小结99
第5章配置管理让一切井然有序100
5.1配置管理和Dockerfile100
技巧40使用ENTRYPOINT创建可靠的定制工具101
技巧41在构建中指定版本来避免软件包的漂移102
技巧42用perl -p -i -e替换文本104
技巧43镜像的扁平化105
技巧44用alien管理外来软件包107
技巧45把镜像逆向工程得到Dockerfile109
5.2传统配置管理工具与Docker112
技巧46传统方式:搭配make和Docker112
技巧47借助Chef Solo构建镜像114
技巧48从源到镜像的构建118
5.3小即是美123
技巧49保持构建镜像更小的Dockerfile技巧123
技巧50让镜像变得更小的技巧126
技巧51通过BusyBox和Alpine来精简Docker镜像128
技巧52Go模型的小容器129
技巧53使用inotifywait给容器瘦身132
技巧54大也可以美134
5.4小结136
第三部分 Docker与DevOps
第6章持续集成:加快开发流水线139
6.1Docker Hub自动化构建139
技巧55使用Docker Hub工作流140
6.2更有效的构建143
技巧56使用eatmydata为IO密集型构建提速143
技巧57设置一个软件包缓存用于加快构建速度145
技巧58在Docker内部运行Selenium测试147
6.3容器化CI过程151
技巧59包含一个复杂的开发环境151
技巧60在一个Docker容器里运行Jenkins主服务器156
技巧61使用Jenkins的Swarm插件扩展CI158
6.4小结161
第7章持续交付:与Docker原则完 美契合162
7.1在CD流水线上与其他团队互动163
技巧62Docker契约减少摩擦163
7.2推动Docker镜像的部署165
技巧63手动同步注册中心镜像165
技巧64通过受限连接交付镜像166
技巧65以TAR文件方式共享Docker对象168
7.3为不同环境配置镜像170
技巧66使用etcd通知容器170
7.4升级运行中的容器172
技巧67使用confd启用零停机时间切换173
7.5小结177
第8章 网络模拟:无痛的现实环境测试178
8.1容器通信超越手工链接178
技巧68一个简单的Docker Compose集群178
技巧69一个使用Docker Compose的SQLite服务器182
技巧70使用Resolvable通过DNS查找容器185
8.2使用Docker来模拟真实世界的网络188
技巧71使用Comcast模拟有问题的网络188
技巧72使用Blockade模拟有问题的网络191
8.3Docker和虚拟网络194
技巧73使用Weave建立一个基底网络195
技巧74Docker的网络与服务功能198
8.4小结201
第四部分 生产环境中的Docker
第9章 容器编排:管理多个Docker容器205
9.1简单的单台宿主机206
技巧75使用systemd管理宿主机上的容器206
技巧76使用systemd编排宿主机上的容器210
9.2多宿主机Docker212
技巧77使用Helios手动管理多宿主机Docker213
技巧78基于Swarm的无缝Docker集群219
技巧79使用Kubernetes集群222
技巧80在Mesos上构建框架228
技巧81使用Marathon细粒度管理Mesos235
9.3服务发现:我们有什么238
技巧82使用Consul来发现服务238
技巧83使用Registrator进行自动化服务注册246
9.4小结248
第 10章Docker与安全249
10.1Docker访问权限及其意味着什么249
10.2Docker中的安全手段250
技巧84限制能力251
技巧85Docker实例上的HTTP认证253
技巧86保护Docker API257
10.3来自Docker以外的安全260
技巧87OpenShift一个应用程序平台即服务260
技巧88使用安全选项269
10.4小结275
第 11章一帆风顺生产环境中的Docker以及运维上的考量276
11.1监控276
技巧89记录容器的日志到宿主机的syslog276
技巧90把Docker日志发送到宿主机的输出系统279
技巧91使用cAdvisor监控容器281
11.2资源控制282
技巧92限制容器可以运行的内核282
技巧93给重要的容器更多CPU283
技巧94限制容器的内存使用285
11.3Docker的系统管理员用例286
技巧95使用Docker来运行cron作业286
技巧96通过保存游戏的方法来备份289
11.4小结291
第 12章Docker生产环境实践应对各项挑战292
12.1性能不能忽略宿主机292
技巧97从容器访问宿主机资源292
技巧98Device Mapper存储驱动和默认的容器大小296
12.2在容器出问题时调试Docker298
技巧99使用nsenter调试容器的网络298
技巧100无须重新配置,使用tcpflow进行实时调试301
技巧101调试在特定宿主机上出问题的容器302
12.3小结306
附录A安装并使用Docker307
附录BDocker配置311
附录CVagrant313
|
|