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

Ija*_*han 44 docker boot2docker docker-swarm docker-machine

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

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

谢谢

joh*_*s85 56

dockerd - Docker守护进程本身.列表中的最高级别组件,也是列出的唯一"Docker"产品.提供Docker的所有优秀UX功能.

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

(docker-)containerd-ctr - 一个轻量级CLI,可直接与containerd通信.可以把它想象成'docker'对'dockerd'的看法.

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

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

  • https://web.archive.org/web/20170509155503/https://hackernoon.com/docker-containerd-standalone-runtimes-heres-what-you-should-know-b834ef155426 @AthirNuaimi (4认同)
  • 这些作品的资源是什么?或者他们如何互动?这篇文章(https://hackernoon.com/docker-containerd-standalone-runtimes-heres-what-you-should-know-b834ef155426)可能是一个好的开始,底部的图表很好. (3认同)

Ija*_*han 11

从文档:

runC 建立在 libcontainer 之上,libcontainer 是支持 Docker 引擎安装的同一个容器库。在 1.11 版本之前,Docker 引擎用于管理卷、网络、容器、图像等。 现在,Docker 架构分为四个组件:

Docker engine 
containerd
containerd-shm
runC. 
Run Code Online (Sandbox Code Playgroud)

二进制文件分别称为:

docker
docker-containerd
docker-containerd-shim
docker-runc.
Run Code Online (Sandbox Code Playgroud)

图片

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


sur*_*rya 8

为了进一步更好地理解高级图片:(在此之前阅读其他好的答案)

建筑学

精选图片集以供快速理解:

在此输入图像描述

在此输入图像描述

在此输入图像描述

资料来源:

  1. 集装箱
  2. 曹宇博客
  3. 推特

“一图胜千言”这句话是有道理的