鏡像和容器已然成為應用的打包和交付標準。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 | 無 |
| 無 |