CCE容器运行时选择
容器运行时(Container Runtime)是 Kubernetes 重要的组件之一,负责管理镜像和容器的生命周期。本文通过对比两种运行时的使用场景、调用链,并通过对比 docker 和 containerd 两种容器引擎常用命令,帮助您根据需求场景选择合适的容器运行时。
containerd 作为一种常见的容器运行时,相比较于 docker,它的调用链更短,组件更少,更稳定,占用节点的资源更少。CCE 同时支持 containerd 和 docker 两种容器运行时,通常情况下建议使用 containerd,若存在以下情况时,请选择 docker 容器运行时:
- 如需使用 docker in docker。
- 如需在 CCE 节点上执行 docker build/push 等命令。
- 如需调用 docker API。
- 如需 docker compose 或 docker swarm。
两种运行时调用链对比
| 运行时 | 调用链 | 
| docker | kubelet > dockershim > dockerd > containerd | 
| containerd | kubelet > CRI plugin > containerd | 
Docker 和 Containerd 两种容器引擎常用命令对比
镜像相关功能
| 功能 | Docker | Containerd | 
| 查看镜像列表 | docker images | crictl images | 
| 查看镜像详情 | docker inspect | crictl inspecti | 
| 推送镜像 | docker push | 无 | 
| 拉取镜像 | docker pull | crictl pull | 
| 删除镜像 | docker rmi | crictl rmi | 
容器相关功能
| 功能 | Docker | Containerd | 
| 查看容器列表 | docker ps | crictl ps | 
| 查看容器详情 | docker inspect | crictl inspect | 
| 查看容器日志 | docker logs | crictl logs | 
| 容器内执行命令 | docker exec | crictl exec | 
| 挂载容器 | docker attach | crictl attach | 
| 显示容器资源使用情况 | docker stats | crictl stats | 
| 创建容器 | docker create | crictl create | 
| 启动容器 | docker start | crictl start | 
| 停止容器 | docker stop | crictl stop | 
| 删除容器 | docker rm | crictl rm | 
Pod 相关功能
| 功能 | Docker | Containerd | 
| 查看 Pod 列表 | 无 | crictl pods | 
| 查看 Pod 详情 | 无 | crictl inspectp | 
| 启动 Pod | 无 | crictl runp | 
| 停止 Pod | 无 | crictl stopp | 
![]()