docker客户端将创建容器的请求发送给dockerd, 当dockerd收到请求任务之后将请求发送给docker-containerd-shm
(其实就是containerd)。
前面没有介绍到containerd。这里简单的介绍下,containerd,它主要负责的工作是:
管理容器的生命周期(从容器的创建到销毁)
拉取/推送容器镜像
存储管理(管理镜像及容器数据的存储)
调用runc 运行容器
管理容器的网络接口及网络
containerd的定位是:
containerd 被设计成嵌入到一个大系统中,而不是给开发人员和终端的设备使用。
关于containerd的详细说明,请查看 containerd (https://github.com/containerd/containerd)。
当containerd接收到请求之后,做好相关的准备工作,会去调用runc,而runc基于OCI文件对容器进行创建。这是容器创建的整体流程。