dockerd vs docker-containerd vs docker-runc vs docker-containerd-ctr vs docker-containerd-shim
dockerd vs docker-containerd vs docker-runc vs docker-containerd-ctr vs docker-containerd-shim
这东西现在真的越来越糊涂了。有人可以解释一下发生了什么事吗?只是直线的一个班轮差异。
dockerd
libcontainerd
containerd
docker-containerd
docker-runc
docker-containerd-ctr
docker-containerd-shim
谢谢
来自文档:
runC is built on libcontainer which is the same container library powering a Docker engine installation. Prior to the version 1.11, Docker engine was used to manage volumes, networks, containers, images etc.. Now, the Docker architecture is broken into four components:
Docker engine
containerd
containerd-shm
runC.
二进制文件分别调用:
docker
docker-containerd
docker-containerd-shim
docker-runc.
dockerd - Docker 守护程序本身。您列表中的最高级别组件,也是列出的唯一 'Docker' 产品。提供 Docker.
的所有优秀用户体验功能
(docker-)containerd - 也是一个守护进程,监听 Unix 套接字,公开 gRPC 端点。处理所有低级容器管理任务、存储、图像分发、网络附件等...
(docker-)containerd-ctr - 直接与 containerd 通信的轻量级 CLI。可以将其视为 'docker' 与 'dockerd' 的关系。
(docker-)runc - 实际上是 运行 容器的轻量级二进制文件。处理与 Linux 功能(如 cgroup、名称空间等)的低级接口...
(docker-)containerd-shim - 在 runC 实际运行容器后,它退出(允许我们没有任何 long-运行负责我们容器的进程)。 shim 是位于 containerd 和 runc 之间以促进此操作的组件。
高级图片以进一步更好地理解:(在此之前阅读其他好的答案)
Architecture
为快速理解而精选的图片集:
来源:
“一图胜千言”这句话是有道理的
这东西现在真的越来越糊涂了。有人可以解释一下发生了什么事吗?只是直线的一个班轮差异。
dockerd
libcontainerd
containerd
docker-containerd
docker-runc
docker-containerd-ctr
docker-containerd-shim
谢谢
来自文档:
runC is built on libcontainer which is the same container library powering a Docker engine installation. Prior to the version 1.11, Docker engine was used to manage volumes, networks, containers, images etc.. Now, the Docker architecture is broken into four components:
Docker engine
containerd
containerd-shm
runC.
二进制文件分别调用:
docker
docker-containerd
docker-containerd-shim
docker-runc.
dockerd - Docker 守护程序本身。您列表中的最高级别组件,也是列出的唯一 'Docker' 产品。提供 Docker.
的所有优秀用户体验功能(docker-)containerd - 也是一个守护进程,监听 Unix 套接字,公开 gRPC 端点。处理所有低级容器管理任务、存储、图像分发、网络附件等...
(docker-)containerd-ctr - 直接与 containerd 通信的轻量级 CLI。可以将其视为 'docker' 与 'dockerd' 的关系。
(docker-)runc - 实际上是 运行 容器的轻量级二进制文件。处理与 Linux 功能(如 cgroup、名称空间等)的低级接口...
(docker-)containerd-shim - 在 runC 实际运行容器后,它退出(允许我们没有任何 long-运行负责我们容器的进程)。 shim 是位于 containerd 和 runc 之间以促进此操作的组件。
高级图片以进一步更好地理解:(在此之前阅读其他好的答案)
Architecture
为快速理解而精选的图片集:
来源:
“一图胜千言”这句话是有道理的