docker 守护进程 状态 docker 主进程_服务端

一、镜像

镜像:是一个只读的文件和文件夹组合,它包含了容器运行时所需要的所有基础文件和配置信息,是容器启动的基础。

二、容器

容器是镜像的运行实体,镜像是静态的只读文件,而容器带有运行时需要的可写文件层,并且容器中的进程属于运行状态,即容器运行着真正的应用进程,容器有初建,运行,停止,暂停和删除五种状态。

三、仓库

镜像仓库类似于代码仓库,用来存储和分发Docker镜像,镜像仓库分为公共镜像和私有镜像仓库



docker 守护进程 状态 docker 主进程_服务端_02

四、Docker架构



docker 守护进程 状态 docker 主进程_服务端_03

Docker整体架构采用C/S(客户端/服务端)模式,主要由客户端和服务端两大部分组成,客户端负责发送操作指令,服务端负责接收和处理指令。客户端和服务端通信有多种方式,既可以在同一台机器上通过UNIX套接字通信,也可以通过网络连接远程通信。

4.1、Docker客户端

docker客户端是一种泛称,其中docker命令是Docker用户与Docker服务端交互的主要方式,除了命令方式,还可以直接请求Rest API的方式与Docker服务端交互,甚至还可以是SDK交互。

4.2、Docker服务端

Docker服务端是Docker所有后台服务的统称,其中dockerd是一个后台管理进程,它负责响应和处理来自Docker客户端的请求,然后将客户端的请求转化为Docker的具体操作,例如镜像、容器、网络和挂载卷等具体对象的操作和管理。

4.3、重要组件

  • runC是Docker官方按照OCI容器运行时标准的一个实现。是一个用来运行容器的轻量级工具,是真正用来运行容器的。
  • containerd是Docker服务端的一个核心组件,是从docker中剥离出来的,是容器标准化后产物,containerd通过containerd-shim启动并管理runC,可以说containerd真正管理了容器的生命周期。
  • containerd-shim是作用是将containerd和真正的容器进程解耦,使用containerd-shim作为容器进程的父进程,从而实现重启dockerd不影响已经启动的容器进程。