下面让我们来看一下本书所采用的Docker术语。 ### 1.1.1 镜像与容器 - 镜像是指文件系统快照或tar包。 - 容器是指镜像的运行态。 ### 1.1.2 容器与虚拟机 - 虚拟机持有整个操作系统和应用程序的快照。 - 虚拟机运行着自己的内核。 - 虚拟机可以运行Linux之外的其他操作系统。 - 容器只持有应用程序,不过应用程序的概念可以延伸到整个Linux发行版。 - 容器共享宿主机的内核。 - 容器只能运行Linux,不过在同一宿主机上运行的每个容器都可包含不同的发行版。 ### 1.1.3 持续集成/持续交付 在应用程序新代码提交或触发其他条件时,系统自动构建新镜像并进行部署。 ### 1.1.4 宿主机管理 设置/配备一台物理服务器或虚拟机以便用于运行Docker容器的过程。 ### 1.1.5 编排 编排(orchestration,也称编配)这个术语在Docker生态系统中有多种含义。通常情况下,它包括调度和集群管理,不过有时也包括了宿主机管理。 在本书中,我们将编排作为一个松散的总称,包括容器调度的过程、集群的管理、容器的链接(发现),以及网络流量路由。或者换句话说,编排是个控制器进程,用于决定在哪里运行容器,以及如何让集群知道可用的服务。 ### 1.1.6 调度 用于决定哪些容器可以以给定的资源约束(如CPU、内存和IO)运行在哪些宿主机上。 ### 1.1.7 发现 容器如何公开服务给集群,以及发现如何查找其他服务并与之通信的过程。举个简单的用例:一个网站应用容器发现如何连接到数据库服务。 Docker文档中的发现是指将容器链接在一起,不过在生产级系统中,通常使用的是更复杂的发现机制。 ### 1.1.8 配置管理 配置管理过去常常指的是Docker出现之前的自动化工具,如Chef和Puppet。大多数的DevOps团队正在转移到Docker上,以消除这类配置管理系统的复杂度。 在本书的示例中,配置管理工具只用于配备具有Docker和少量其他东西的宿主机。