dockerd vs docker-containerd vs docker-runc vs docker-containerd-ctr vs docker-containerd-shim

时间:2017-10-09 15:07:06

标签: docker docker-machine docker-swarm boot2docker

现在这个东西真的很混乱了。有人可以解释一下发生了什么。只是一个直线的差异。

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

感谢

2 个答案:

答案 0 :(得分:53)

dockerd - Docker守护程序本身。列表中最高级别的组件,也是唯一的Docker'产品上市。提供Docker的所有优秀UX功能。

(docker-)containerd - 也是一个监听Unix套接字的守护进程,暴露了gRPC端点。处理所有低级容器管理任务,存储,图像分发,网络附件等...

(docker-)containerd-ctr - 一个轻量级CLI,可直接与containerd通信。可以把它想象成“码头工人”的方式。是#dockerd'。

(docker-)runc - 用于实际运行容器的轻量级二进制文件。处理与Linux功能(如cgroup,命名空间等)的低级接口......

(docker-)containerd-shim - 在runC实际运行容器之后,它退出(允许我们没有任何长时间运行的进程负责我们的容器)。垫片是容器和runc之间的组件,以促进这一点。

答案 1 :(得分:3)

来自文档:

  

runC建立在libcontainer之上,libcontainer是为Docker引擎安装提供动力的相同容器库。在版本1.11之前,Docker引擎用于管理卷,网络,容器,图像等。现在,Docker架构分为四个组件:Docker引擎,containerd,containerd-shm和runC。二进制文件分别称为docker,docker-containerd,docker-containerd-shim和docker-runc。

https://i.stack.imgur.com/lAtSR.png

https://hackernoon.com/docker-containerd-standalone-runtimes-heres-what-you-should-know-b834ef155426

相关问题