dockerd与docker容器vsdocker运行与docker-containerd-ctr vsdocker容器shim

这个东西现在真的变得混乱了,有人能解释一下是怎么回事。 只是直线一线差异。

dockerd libcontainerd containerd docker-containerd docker-runc docker-containerd-ctr docker-containerd-shim

谢谢

dockerd – Docker守护进程本身。 列表中最高级别的组件,也是唯一的“Docker”产品。 提供Docker的所有漂亮UX特性。

(docker-)containerd – 在Unix套接字上侦听的守护进程也暴露了gRPC端点。 处理所有低级容器pipe理任务,存储,映像分发,networking附件等。

(docker-)containerd-ctr – 一个轻量级的CLI与containerd直接通信。 把它想象成“docker工人”是如何“docker工人”的。

(docker-)runc – 实际运行容器的轻量级二进制文件。 处理与cgroups,命名空间等Linuxfunction的低级接口…

(docker-)containerd-shim – runC实际运行容器后,退出(允许我们没有任何长时间运行的进程负责我们的容器)。 垫片是位于容器和runc之间的组件,以便于实现。

在这里find一些说明dokcer-stuff :

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 and runC. The binaries are respectively called docker, docker-containerd, docker-containerd-shim, and docker-runc.

如果您有其他想法,请继续添加。