1.1.4 Docker引擎

Docker引擎(Docker Engine)是基于客户/服务器架构的应用程序,如图1-2所示,它主要包括以下组件。

图1-2 Docker引擎的组件

● 服务器:即Docker守护进程,这是Docker的后台应用程序,可使用dockerd命令进行管理。Docker守护进程可用于创建和管理Docker对象,比如镜像、容器、网络和卷。

● REST API:定义程序与Docker守护进程交互的接口,便于编程操作Docker平台和容器。REST API是目前比较成熟的Internet应用程序的API软件架构。

● 客户端:命令行接口(Command Line Interface,CLI),可使用docker命令进行操作。命令行接口又称命令行界面,可以通过命令或脚本使用Docker的REST API接口控制Docker守护进程,或者与Docker守护进程进行交互。许多Docker应用程序都会使用底层的API和命令行接口。

Docker引擎是目前使用最广泛的容器引擎。Docker提供简单的工具和一种通用的打包方法,将所有应用程序依赖打包到容器中。Docker引擎可以使集中化的应用程序在任何基础设施上的任何地方持续运行,为开发人员和运维人员解决“dependency hell”(可译为依赖性地狱,指由于软件之间的依赖性不能被满足而引发的问题),以及“it works on my laptop!”(软件仅能在开发环境中运行)问题。

Docker引擎可用于Linux或Windows服务器操作系统。它是基于Containerd项目实现的。Containerd是Docker基于行业标准创建的核心容器运行时开源项目,可以用作Linux和Windows的守护进程,并管理整个容器生命周期。Docker既提供免费的社区支持的引擎,又提供商用的企业引擎作为企业容器平台的基础。