【发布时间】:2018-03-20 20:22:07
【问题描述】:
这东西现在真的很混乱。有人可以解释发生了什么。只是直线上的区别。
dockerdlibcontainerdcontainerddocker-containerddocker-runcdocker-containerd-ctrdocker-containerd-shim
谢谢
【问题讨论】:
标签: docker docker-machine docker-swarm boot2docker
这东西现在真的很混乱。有人可以解释发生了什么。只是直线上的区别。
dockerdlibcontainerdcontainerddocker-containerddocker-runcdocker-containerd-ctrdocker-containerd-shim谢谢
【问题讨论】:
标签: docker docker-machine docker-swarm boot2docker
dockerd - Docker 守护进程本身。您列表中的最高级别组件,也是列出的唯一“Docker”产品。提供 Docker 的所有优秀 UX 功能。
(docker-)containerd - 也是一个守护进程,监听 Unix 套接字,公开 gRPC 端点。处理所有底层容器管理任务、存储、镜像分发、网络附件等...
(docker-)containerd-ctr - 直接与 containerd 通信的轻量级 CLI。把它想象成 'docker' 对 'dockerd' 的意义。
(docker-)runc - 用于实际运行容器的轻量级二进制文件。处理与 cgroup、命名空间等 Linux 功能的低级接口......
(docker-)containerd-shim - 在 runC 实际运行容器后,它退出(允许我们没有任何长期运行的进程负责我们的容器)。 shim 是位于 containerd 和 runc 之间的组件,用于促进这一点。
【讨论】:
来自文档:
runC 建立在 libcontainer 之上,后者是为 Docker 引擎安装提供支持的同一容器库。在 1.11 版本之前,Docker 引擎用于管理卷、网络、容器、镜像等。现在,Docker 架构分为四个组件:
Docker engine
containerd
containerd-shm
runC.
分别调用二进制文件:
docker
docker-containerd
docker-containerd-shim
docker-runc.
【讨论】:
高级图片以便进一步更好地理解:(在此之前阅读其他好的答案)
精选图片集,便于快速了解:
来源:
“一张图抵千言”是有原因的
【讨论】: