2.1 Docker简介
当人们说到Docker的时候,可能是指如下三种概念之一。
- Docker公司
- Docker的容器运行时和编排引擎
- Docker开源项目(Moby)
Docker是一种运行于Linux和Windows上的软件,用于创建、管理和编排容器。Docker是在Github上开发的Moby开源项目的一部分。Docker公司,位于旧金山,是整个Moby开源项目的维护者。Docker公司还提供包含支持服务的商业版本Docker。
2.1 Docker公司
内容介绍略,说明本书将始终使用“Docker公司”来指代Docker这家公司,其他地方出现的Docker都是指容器技术或者开源项目。
注:Docker一词来自英国口语,意思是码头工人(Docker Worker),即从船上装卸货物的人。
2.2 Docker运行时与编排引擎
多数技术人员在谈到Docker时,主要是指Docker引擎。
Docker引擎是用于运行和编排容器的基础设施工具,可以与VMWare中的ESXI作为类别。ESXI是运行虚拟机的核心管理程序,而Docker引擎是运行容器的核心容器运行时。
目前Docker引擎主要有两个版本:企业版(EE)和社区版(CE)。每个季度,企业版和社区版都会发布一个稳定的版本。社区版本会提供4个月的支持,而企业版本会提供12个月的支持。
下图是围绕Docker引擎进行开发和集成的产品。

2.3 Docker开源项目(Moby)
Docker一词也会用于指代开源Docker项目。其中包含一系列可以从Docker官网下载和安装的工具,比如Docker服务端和Docker客户端。不过,该项目在2017年于Austin举办的DockerCon上正式命名为Moby项目。由于这次的改名,GitHub上的docker/docker库也被转移到了moby/moby,并且拥有了项目自己的Logo。
Moby项目的目标是基于开源的方式,发展成为Docker上游,并将Docker拆分为更多的模块化组件。Moby项目托管于Github的Moby代码库,包含子项目和工具列表。核心的Docker引擎项目位于Github的moby/moby,但是引擎中的代码正在持续被拆分和模块化。
2.4 容器生态
Docker公司的一个核心哲学通常被称为“含电池,但可拆卸(Batteries included but removable)”。意思是许多Docker内置的组件都可以替换为第三方组件,网络技术栈就是一个很好的例子。早期的时候,第三方插件通常比内置的组件更加好用。当然随着Docker公司的努力,Docker内置的电池也变得越来越好用了。
2.5 开放容器计划
如果不谈及开发容器计划(The Open Container Initiative,OCI)的话,对Docker和容器生态的探讨总是不完整。
OCI是一个旨在对容器基础架构中的基础组件(如镜像格式与运行时)进行标准化的管理委员会。OCI的历史与一个叫做CoreOS的公司息息相关,这家公司不大喜欢Docker的某些行事方式。因此,它就创建了一个新的开源标准,称为“appc”,该标准涉及诸如镜像格式和容器运行时等方面。
两个处于竞争状态的标准将容器生态置于一种尴尬的境地,为了避免分裂的危险,同时也令消费者和用户陷入了两难。最后的结果就是大家一起成立了OCI——一个旨在管理容器标准的轻量级的、敏捷型的委员会。
网友评论