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
docker重启容器命令
其中dockerd虽增加了swarm cluster、docker build、docker API等功能,但也会引⼊⼀些bug,⽽与containerd相⽐,多了⼀层调⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论