鏡像和容器已然成為應用的打包和交付標準。Kubernetes成為了整個容器雲原生應用的標準OS,越來越多的企業和使用者選擇在ACK中部署自己的應用。Container ServiceKubernetes版(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 | 無 |
| 無 |