Skip to content

Docker和Containerd的区别

Containerd 是从 Docker 中分离的一个项目,旨在为 Kubernetes 提供容器运行时,负责管理镜像和容器的生命周期。

在 kubernetes1.20 后会逐步移除 docker,不过现在 docker 和 containerd 都可以同时为 Kubernetes 提供运行时。

  • 如果是 docker 作为容器运行时,则调用关系是 kubelet-->docker-shim-->dockerd-->containerd
  • 如果是 containerd 作为容器运行时,则调用关系是 kubelet-->cri-plugin-->containerd

可以看出 containerd 的调用链路比 docker 要短,但是相对的功能没有 docker 丰富。

镜像相关

镜像相关功能DockerContainerd
显示本地镜像列表docker imagescrictl images
下载镜像docker pullcrictl pull
上传镜像docker push
删除本地镜像docker rmicrictl rmi
查看镜像详情docker inspect IMAGE-IDcrictl inspecti IMAGE-ID

容器相关

容器相关功能DockerContainerd
显示容器列表docker pscrictl ps
创建容器docker createcrictl create
启动容器docker startcrictl start
停止容器docker stopcrictl stop
删除容器docker rmcrictl rm
查看容器详情docker inspectcrictl inspect
attachdocker attachcrictl attach
execdocker execcrictl exec
logsdocker logscrictl logs
statsdocker statscrictl stats

Pod 相关

POD 相关功能DockerContainerd
显示 POD 列表crictl pods
查看 POD 详情crictl inspectp
运行 PODcrictl runp
停止 PODcrictl stopp
最近更新