前面我们研究了Docker容器的本质是一个特殊的进程,那么这个特殊进程是如何创建、如何终止的那?也就是说是谁来管理这个容器进程的生命周期的那?
在mac操作系统中我们可以通过活动监视器来观察操作系统里面有哪些进程,以及通过活动监视器我们可以让指定的进程终止运行。活动监视器本身也是一个进程,但是其保存了所有进程的信息,比如进程的名称,进程PID等信息。同理在Docker的设计中,也存在一个叫做Docker daemon的进程,Docker daemon运行在Docker host上,负责创建、运行、监控容器,以及负责构建、存储容器镜像。
如上图为Docker的架构设计,可知其使用了Client/Server架构:
-
其中Docker daemon运行在Docker 主机上,负责创建、运行、监控容器,以及负责构建、存储容器镜像。
-
Docker客户端是为开发者提供的操作docker镜像和容器的客户端,比如我们最常使用的是docker 命令,使用docker build命令构建镜像,使用docker pull命令拉取镜像,使用docker run命令运行容器等。
-
Docker镜像本质为静态的文件,我们可以认为其是模板,基于其我们可以创建运行时的容器,关于Docker镜像里面包含了什么,我们在前面的文章里面已经讲解过了。我们可以使用docker build来创建一个镜像,使用docker pull来拉取镜像
-
Docker 容器,即docker镜