镜像和容器已然成为应用的打包和交付标准。Kubernetes成为了整个容器云原生应用的标准OS,越来越多的企业和用户选择在ACK中部署自己的应用。容器服务Kubernetes版(ACK)支持Containerd、Docker、安全沙箱三种运行时。本文通过对比三种运行时的实现和使用限制、部署结构,并通过对比Docker和Containerd两种容器引擎常用命令,帮助您根据需求场景选择合适的容器运行时。
容器运行时实现和使用限制的对比
特性 | Containerd运行时 | Docker运行时 | 安全沙箱运行时 | 说明 |
集群类型 | 支持托管版、专有版和边缘托管版 | 支持所有类型 | 支持托管版和专有版 | 无 |
集群版本 | 支持所有集群版本 | 支持1.22版本及以下 说明 建议您升级Docker运行时为Containerd运行时。详细信息,请参见将节点容器运行时从Docker迁移到Containerd。 | 支持1.24版本及以下 | 无 |
节点型号 | 支持:
| 支持:
| 支持: 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 | |
查看容器列表 |
|
|
|
查看容器详情 |
|
|
|
查看容器日志 |
|
| 无 |
容器内执行命令 |
|
| 无 |
挂载容器 |
|
| 无 |
显示容器资源使用情况 |
|
| 无 |
创建容器 |
|
|
|
启动容器 |
|
|
|
停止容器 |
|
| 无 |
删除容器 |
|
|
|
查看镜像列表 |
|
|
|
查看镜像详情 |
|
| 无 |
拉取镜像 |
|
|
|
推送镜像 |
| 无 |
|
删除镜像 |
|
|
|
查看Pod列表 | 无 |
| 无 |
查看Pod详情 | 无 |
| 无 |
启动Pod | 无 |
| 无 |
停止Pod | 无 |
| 无 |