如何选择Containerd和Docker

最近更新时间:2021-11-10 21:17:49

查看PDF

容器运行时简介

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

如何选择Containerd和Docker?

容器服务支持Containerd和Docker两种运行时,您可根据实际需求选择不同的运行时:

  • Containerd运行时:调用链更短、组件更少、更稳定、占用节点资源更少,建议您选择Containerd运行时。
  • 若您有以下使用场景,建议您选择Docker运行时:
    • 使用 docker in docker。
    • 在节点使用docker build/push/save/load等命令。
    • 调用docker API。
    • 需要docker compose 或 docker swarm。

Containerd和Docker常用命令对比

说明:Containerd 不支持 docker API 和 docker CLI,若您有该需求,可以通过 cri-tool 命令实现类似的功能。

镜像相关功能
命令 Docker Containerd
查看镜像列表 docker images crictl images
下载镜像 docker pull crictl pull
上传镜像 docker push -
删除镜像 docker rmi crictl rmi
查看镜像详情 docker inspect crictl inspect
容器相关功能
命令 Docker Containerd
查看容器列表 docker ps crictl ps
创建容器 docker create crictl create
启动容器 docker start crictl start
停止容器 docker stop crictl stop
删除容器 docker rm crictl rm
查看容器详情 docker inspect crictl inspect
挂载容器 docker attach crictl attach
容器内执行命令 docker exec crictl exec
查看容器日志 docker logs crictl logs
显示容器资源使用情况 docker stats crictl stats
POD相关功能
命令 Docker Containerd
查看pod列表 - crictl pods
查看pod详情 - crictl inspectp
运行pod - crictl runp
停止pod - crictl stopp

调用链对比

容器运行时 调用链
Docker kubelet -> docker shim -> dockerd -> containerd -> containerd-shim -> runC容器
Containerd kubelet -> containerd -> containerd-shim -> runC容器

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈