镜像和容器已然成为应用的打包和交付标准。Kubernetes成为了整个容器云原生应用的标准OS,越来越多的企业和用户选择在ACK中部署自己的应用。容器服务Kubernetes版(ACK)支持Containerd、Docker、安全沙箱三种运行时。本文通过对比三种运行时的实现和使用限制、部署结构,并通过对比Docker和Containerd两种容器引擎常用命令,帮助您根据需求场景选择合适的容器运行时。
容器运行时实现和使用限制的对比
特性 | Containerd运行时 | Docker运行时 | 安全沙箱运行时 | 说明 |
---|---|---|---|---|
集群类型 | 支持托管版、专有版和边缘托管版 | 支持所有类型 | 支持托管版和专有版 | 无 |
节点型号 | 支持:
| 支持:
| 支持: EBM | 无 |
节点OS | 支持:
| 支持:
| 支持: Alibaba Cloud Linux定制版 |
|
容器引擎 | 支持Containerd | 支持Docker | 支持Containerd | 无 |
监控 | 支持 | 支持 | 支持 | 无 |
容器日志文件采集 | 支持 | 支持 | 手动支持(Sidecar) | 有关Sidecar配置,请参见通过Sidecar-CRD方式采集容器文本日志。 |
容器标准输出采集 | 支持 | 支持 | 支持 | 无 |
RuntimeClass | 不支持 | 不支持 | 支持(runV) | 无 |
Pod调度 | 无需配置 | 无需配置 | 配置如下:
| 无 |
HostNetwork | 支持 | 支持 | 不支持 | 无 |
exec/logs | 支持 | 支持 | 支持 | 无 |
节点数据盘 | 可选 | 可选 | 必选(不小于200 GiB) | 无 |
网络插件 | 支持:
| 支持:
| 支持:
| 无 |
kube-proxy代理模式 | 支持:
| 支持:
| 支持:
| 无 |
存储插件 | 支持CSI Plugin(边缘托管版除外) | 支持CSI Plugin | 支持CSI Plugin | 无 |
容器RootFS | 支持OverlayFS | 支持OverlayFS | 支持配置磁盘Quota的OverlayFS | 无 |
运行时部署结构对比
运行时 | 部署结构 |
---|---|
Docker |
|
Containerd |
|
安全沙箱v2 |
|
Docker和Containerd两种容器引擎常用命令对比
Docker运行时和安全沙箱运行时的容器引擎分别是Docker和Containerd。这两种容器引擎都有各自的命令工具来管理镜像和容器。两种容器引擎常用命令对比如下。
命令 | Docker | Containerd | |
---|---|---|---|
docker | crictl(推荐) | ctr | |
查看容器列表 | docker ps | crictl ps | ctr -n k8s.io c ls |
查看容器详情 | docker inspect | crictl inspect | ctr -n k8s.io c info |
查看容器日志 | docker logs | crictl logs | 无 |
容器内执行命令 | docker exec | crictl exec | 无 |
挂载容器 | docker attach | crictl attach | 无 |
显示容器资源使用情况 | docker stats | crictl stats | 无 |
创建容器 | docker create | crictl create | ctr -n k8s.io c create |
启动容器 | docker start | crictl start | ctr -n k8s.io run |
停止容器 | docker stop | crictl stop | 无 |
删除容器 | docker rm | crictl rm | ctr -n k8s.io c del |
查看镜像列表 | docker images | crictl images | ctr -n k8s.io i ls |
查看镜像详情 | docker inspect | crictl inspecti | 无 |
拉取镜像 | docker pull | crictl pull | ctr -n k8s.io i pull |
推送镜像 | docker push | 无 | ctr -n k8s.io i push |
删除镜像 | docker rmi | crictl rmi | ctr -n k8s.io i rm |
查看Pod列表 | 无 | crictl pods | 无 |
查看Pod详情 | 无 | crictl inspectp | 无 |
启动Pod | 无 | crictl runp | 无 |
停止Pod | 无 | crictl stop | 无 |