本书介绍了Docker容器技术的背景和基本原理,以及如何定制化符合用户要求的Docker Daemon,增加安全性、提高效率。.镜像提供了千差万别的服务,每一个镜像都是要满足用户的某种需求。如何制作出体积小、安全性高、可配置性强的镜像是困扰很多开发者的问题,书中详细介绍了相关解决方案。本书的最后还介绍了各种流行的开源项目,让读者了解Docker生态圈。
Docker是改变世界的盒子,微服务的基石,带领云计算进入2.0时代
前 言
为什么要写这本书?
在2013年3月,Docker项目正式开源。短短的三年中,Docker已经迅速普及开来,云计算、大数据、互联网等相关IT技术公司纷纷开始拥抱Docker。在硅谷,有200多家Docker相关的创业公司。Google、Microsoft、AWS、IBM等大型技术公司都已经加入Docker生态圈,开始使用Docker,并为Docker社区共享。OpenStack、Hadoop等云计算、大数据框架也开始向Docker迁移。
在国内,从Docker诞生之日起,各大技术公司和极客们就开始紧密关注这项技术。从2014年下半年开始,陆续有公司开始把现有系统迁移到Docker平台。BAT、华为、新浪、京东都有Docker相关产品上线。Docker的普及愈演愈烈,大有掀起第二次云计算革命之势。
笔者从2014年年初开始接触Docker,一下就被Docker的轻量性、便捷性所吸引。通过在实际项目中使用Docker,发现Docker天生就是要解决敏捷开发、持续集成、持续发布、动态迁移、动态伸缩等互联网、云计算、大数据行业普遍存在的问题。通过把产品容器化,加速了开发、测试、发布的流程,产品发布时间从半天减少到47秒。通过镜像提交产品,解决了开发、测试、发布的环境异构性问题,使产品可以平滑地在各个部门之间传递。
在Docker的实际使用中,笔者遇到了很多棘手的问题,花费了大量的时间研究、分析、测试、解决这些问题。同时,笔者也发现很多初学者正在重复笔者走过的一些弯路。究其原因,是目前国内没有一本详细介绍Docker实战的书籍。因此,笔者决定把自己的一些经验总结出来,编撰成书,为广大读者服务。
本书有何特色?
1.配置详细
本书涵盖Docker Daemon、Docker存储驱动、Docker镜像仓库的所有配置选项,并对每个选项都有详细的介绍。
2.注重实践性
本书从实践出发,介绍在实际应用场景中应该如何定制Docker。详细介绍镜像制作的步骤、指令和最佳实践,各种存储驱动的区别和使用场合,以及Docker Daemon各种扩展功能和接口的使用方法,并列举了典型镜像的使用方法。
3.对Docker框架和原理进行分析
本书深入浅出地介绍Docker使用的核心技术:Namespace、CGroups和UnionFS。方便读者理解Docker原理,并在实际应用中可以更好地使用Docker。
4.项目案例典型,实战性强,有较高的应用价值
本书中的第11章和第12章专门从实践出发,详细介绍镜像和容器的使用,并列出详细步骤,方便读者快速上手。
5.提供完善的技术支持和售后服务
本书提供专门的技术支持邮箱:book@ghostcloud.cn。读者在阅读本书过程中有任何疑问都可以通过该邮箱获得帮助。
本书内容及知识体系
第1篇 Docker基础知识介绍(第1~3章)
本篇介绍云计算的历史和基本概念,Docker的安装和基本使用。帮助读者对Docker有一个基本的了解,并搭建自己的Docker环境。
第2篇 Docker的基本使用(第4~7章)
本篇介绍Docker的构架、Docker的工作方式、下载镜像、制作镜像、运行容器、配置容器网络、在容器中实现数据持久化、备份还原迁移容器卷、关联容器代码做持续集成、查找镜像、下载镜像、上传镜像等内容。
第3篇 Docker的高级使用(第8~13章)
本篇主要介绍Docker中的存储驱动、配置Docker Daemon、制作镜像和搭建仓库等内容。
Docker镜像提供了丰富的应用,对于Docker的流行起了重要作用。本篇详细介绍如何制作镜像,为读者介绍基本指令和最佳实践。Docker镜像和容器有非常紧密的联系,本篇详细介绍两者的关系。
镜像和容器是通过Docker的存储驱动管理的。Docker中有多种存储驱动,每种存储驱动在性能、可扩展性、安全性上有差别,不同应用场景应该选择不同的存储驱动。本篇详细介绍各种存储驱动,为读者在实际应用中选择存储驱动做指导。
Docker Daemon是Docker管理镜像和容器的核心,除基本功能外,还提供很多扩展功能和接口。本篇详细介绍每种扩展功能和接口的具体使用方法。
第4篇 Docker常见问题(第14章)
本篇主要总结Docker学习中遇到的一些问题,为读者提供统一的解释。
适合阅读本书的读者
?在校计算机相关专业的学生;
?Docker初学者;
?基于UNIX/Linux环境的系统运维人员;
?基于UNIX/Linux环境的测试人员;
?基于UNIX/Linux环境的开发人员;
?系统构架师;
?CTO;
?互联网行业的开发、测试、运维人员;
?初创公司的技术人员;
?云计算、大数据行业的技术人员。
阅读本书的建议
?没有云计算背景知识的读者,建议从第1章顺次阅读。
?对于还没有使用过Docker的读者,建议从第2章开始阅读,首先搭建自己的实验环境。
?对于特别关注Docker在存储方面的读写速度、稳定性、安全性的读者,建议详细阅读第8章。
?对于需要在特定环境下定制Docker Daemon的读者,建议详细阅读第9章,学习如何修改Docker Daemon的配置,以适应具体应用场景。
?对于希望在开发、测试、部署中使用Docker镜像提交产品的开发人员和运维人员,建议详细阅读第10章和第11章,学习如何制作镜像。
?对于希望直接使用容器提供服务的读者,可以详细阅读第12章,学习如何使用官方镜像运行容器。
?对于需要建立私有仓库管理镜像的读者,可以详细阅读第13章,学习搭建私有镜像仓库。
?每章中都介绍详细的配置选项,读者需要通过实验,深刻理解和熟练地使用这些选项。
?读者可以首先通读一遍本书,对Docker使用过程有一个大概的了解,然后根据自己的应用场景,详细阅读相关章节。