前言

容器技术重新定义了应用程序在不同环境中的移植和运行方式。越来越多的应用程序以容器的形式在开发、测试和生产环境中运行。Docker是目前最为流行的容器平台,基本已成为容器的代名词。作为开发、发布和运行应用程序的开放平台,Docker为快速发布、测试和部署应用程序提供了一整套技术方法,软件开发人员、IT实施和运维工程师都需要掌握这些技术方法。Docker现已形成了自己的生态圈,从基础的操作系统、网络、存储设施的管理到应用程序的开发、测试和部署,越来越多的企业和IT人员融入Docker相关的领域中。相关行业对Docker技术人才提出了迫切的需求,尤其是熟练掌握Docker技术的高级应用型人才。

很多高等院校的IT相关专业都将“Docker容器技术与应用”作为一门重要的专业课程。本书旨在帮助高等院校教师全面、系统地讲授这门课程,使学生能够掌握Docker应用和运维的方法及技能。Docker有两个版本,一个是社区版的Docker CE,另一个是企业版的Docker EE。Docker CE是免费提供的,包含了完整的Docker平台,非常适合个人开发者和小型团队,也适合容器技术的教学和实验。考虑到国内用户偏好CentOS和Red Hat系列的Linux操作系统,本书以在CentOS 7操作系统上安装运行Docker CE为例进行讲解。

全书共11章,按照从基础到应用的逻辑进行组织:第1章首先介绍Docker基础知识,然后示范了Docker的安装和入门操作;第2~5章的内容主要是Docker容器管理和运维的基础知识和操作,涉及镜像和Docker注册中心、Docker容器、Docker网络和Docker存储;第6章和第7章主要讲解Docker应用程序的开发和持续集成,这部分内容非常具有实用价值,涉及如何将自己开发的应用程序Docker化,如何通过代码托管平台自动化构建Docker镜像,以及应用程序如何基于Docker持续集成和自动化部署;第8章针对大量容器资源的管理和复杂应用程序的部署,讲解和示范了Docker容器编排;第9章讲解多主机的远程管理、跨主机的容器网络通信和监控;第10章讲解Docker内置容器集群平台的管理和应用,以及使用Docker堆栈部署分布式应用;第11章简单介绍了生产环境中的Docker运维方法。

本书一方面注重对Docker基础知识的讲解,对相关概念进行详细解析,并使用表格来汇总资料,使用示意图来讲解原理和架构;另一方面注重动手实践,详细介绍具体的操作步骤,直接给读者进行示范。请注意,由于Docker版本的不断更迭,如果读者的实验环境与本书不一致,在参照本书示例的操作过程中,返回的结果可能会存在一些差异。

本书的参考学时为60学时,其中实践环节为30学时左右。

由于时间仓促,加之我们水平有限,书中难免存在不足之处,敬请广大读者批评指正。

编者

2021年1月