docker和containerd的区别

识趣 发表于: 2022-08-09   最后更新时间: 2022-08-09 21:17:06   2,534 游览

最近看到kubernetes弃用了docker,默认使用containerd。

谁能帮我解释一下docker和containerd的区别是什么?

发表于 2022-08-09

docker 由:

  • docker-client
  • dockerd
  • containerd
  • docker-shim
  • runc

组成,containerd 只是 docker 的组件之一。

kubernetes 的角度看,可以选择 containerddocker 作为容器运行时:

但是:containerd 调用链更短,组件更少,更稳定,占用节点资源更少。

所以kubernetes新版之后,默认采用 containerd

docker 作为 k8s 容器运行时,调用关系为:

kubelet --> dockershim (在 kubelet 进程中) --> dockerd --> containerd

containerd 作为 k8s 容器运行时,调用关系为:

kubelet --> cri plugin(在 containerd 进程中) --> containerd
识趣 -> 半兽人 2年前

感谢,很清晰

你的答案

查看docker相关的其他问题或提一个您自己的问题