Containerd和Docker的关系

联系

容器运行时(Container Runtime)是Kubernetes(k8s)最重要的组件之一,负责管理镜像和容器的生命周期。Kubelet通过Container Runtime Interface (CRI) 与容器运行时交互,以管理镜像和容器。

Containerd调用链更短,组件更少,更稳定,占用节点资源更少。 建议选择containerd。
当您遇到以下情况时,请选择docker作为运行时组件:

  • 如需使用docker in docker。
  • 如需在CCE节点使用docker build/push/save/load等命令。
  • 如需调用docker API。
  • 如需docker compose或docker swarm。

Containerd创建并启动的容器会被kubelet立即删除,不支持暂停、恢复、重启、重命名、等待容器,Containerd不具备docker构建、导入、导出、比较、推送、查找、打标签镜像的能力,Containerd不支持拷贝文件,可通过修改containerd的配置文件实现登录镜像仓库。

Containerd和Docker组件常用命令

Containerd不支持dockerAPI和dockerCLI,但是可以通过cri-tool命令实现类似的功能。

镜像相关功能

容器相关功能

POD相关功能

调用链区别

Docker作为k8s容器运行时,调用关系如下:

kubelet --> docker shim (在 kubelet 进程中) --> dockerd --> containerd

Containerd作为k8s容器运行时,调用关系如下:

kubelet --> cri plugin(在 containerd 进程中) --> containerd

其中dockerd虽增加了swarm cluster、docker build、docker API等功能,但也会引入一些bug,而与containerd相比,多了一层调用。

posted @   哈喽哈喽111111  阅读(2191)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2019-01-17 使用Flask+uWsgi的方式部署一个blog网站
2018-01-17 使用python备份指定目录并删除备份超过一定时长的文件
点击右上角即可分享
微信分享提示