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  阅读(2189)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-01-17 使用Flask+uWsgi的方式部署一个blog网站
2018-01-17 使用python备份指定目录并删除备份超过一定时长的文件
点击右上角即可分享
微信分享提示