全部產品
Search
文件中心

Container Service for Kubernetes:Docker、containerd、安全沙箱運行時的對比

更新時間:Jul 17, 2025

ACK支援containerd、安全沙箱和Docker三種運行時。本文通過對比三種運行時的實現和使用限制、部署結構,協助您根據需求情境瞭解並選擇合適的容器運行時。

容器運行時實現和使用限制的對比

特性

containerd運行時

安全沙箱運行時

Docker運行時(已停止維護)

叢集類型

  • ACK託管叢集

  • ACK專有叢集

  • ACK Edge叢集

  • ACK託管叢集

  • ACK專有叢集

所有叢集類型

叢集版本

1.20及以上版本

1.16及以上版本

1.22及以下版本

說明

建議升級至containerd,操作步驟請參見將節點容器運行時從Docker遷移到containerd

節點型號

  • ECS

  • 使用者自有節點(ACK Edge叢集

僅支援ECS Bare Metal Instance規格

ECS

節點OS

Container Service for Kubernetes提供的Alibaba Cloud Linux 3容器最佳化版ContainerOSAlibaba Cloud Linux 3、Ubuntu、Windows等作業系統的公用鏡像。詳細資料請參見作業系統

  • Alibaba Cloud Linux

  • CentOS

容器引擎

containerd

containerd

Docker

監控

支援

支援

支援

容器記錄檔採集

支援

手動支援(Sidecar)

支援

容器標準輸出採集

支援

支援

支援

RuntimeClass

不支援

支援(runV)

不支援

Pod調度

無需配置

配置如下:

  • Kubernetes 1.14.x版本中必須為nodeSelector增加以下配置。

    alibabacloud.com/sandboxed-container: Sandboxed-Container.runv
  • Kubernetes 1.16.x以及更高版本無需額外配置。

無需配置

HostNetwork

支援

不支援

支援

節點資料盤

可選

必選(不小於200 GiB)

可選

網路外掛程式

  • Flannel

  • Terway(ACK Edge叢集除外)

  • Flannel

  • Terway

kube-proxy代理模式

  • iptables

  • IPVS

  • iptables

  • IPVS

  • iptables

  • IPVS

儲存外掛程式

CSI Plugin(ACK Edge叢集除外)

CSI Plugin

CSI Plugin

容器RootFS

OverlayFS

配置磁碟Quota的OverlayFS

OverlayFS

說明
  • 不支援同一節點同時部署Docker和安全沙箱兩種運行時。您可建立不同節點池來實現Docker運行時節點和安全沙箱運行時節點混合部署。

  • 安全沙箱底層基於containerd實現。通過kubectl get node或控制台節點列表查看安全沙箱節點資訊時,其節點運行時將顯示為contaienrd。

  • 關於Sidecar配置,請參見通過Sidecar-CRD方式採集容器文本日誌

運行時部署結構對比

運行時

部署結構

Docker

kubelet
└── dockerd
    └── containerd
        └── containerd-shim
            └── runC容器

containerd

kubelet
└── containerd
    └── containerd-shim
        └── runC容器

安全沙箱v2

kubelet
├── (CRI) containerd
│   ├── containerd-shim
│   │   └── runC 容器
│   └── containerd-shim-runv2
│       └── runV 安全沙箱容器

Docker和containerd兩種容器引擎常用命令對比

Docker運行時和安全沙箱運行時的容器引擎分別是Docker和containerd,各自具有獨特的命令列工具來管理鏡像和容器。兩種容器引擎常用命令對比如下。

命令

containerd

Docker

crictl(推薦)

ctr

docker

查看容器列表

crictl ps

ctr -n k8s.io c ls

docker ps

查看容器詳情

crictl inspect <container>

ctr -n k8s.io c info <container>

docker inspect <container>

查看容器日誌

crictl logs <container>

N/A

docker logs <container>

容器內執行命令

crictl exec <container>

N/A

docker exec <container>

掛載容器

crictl attach <container>

N/A

docker attach <container>

顯示容器資源使用方式

crictl stats <container>

N/A

docker stats <container>

建立容器

crictl create <container>

ctr -n k8s.io c create <container>

docker create <container>

啟動容器

crictl start <container>

ctr -n k8s.io run <container>

docker start <container>

停止容器

crictl stop <container>

ctr -n k8s.io task pause <container>

docker stop <container>

刪除容器

crictl rm <container>

ctr -n k8s.io c del <container>

docker rm <container>

查看鏡像列表

crictl images

ctr -n k8s.io i ls <image>

docker images

查看鏡像詳情

crictl inspecti <image>

N/A

docker inspect <image>

拉取鏡像

crictl pull <image>

ctr -n k8s.io i pull <image>

docker pull <image>

推送鏡像

N/A

ctr -n k8s.io i push <image>

docker push <image>

刪除鏡像

crictl rmi <image>

ctr -n k8s.io i rm <image>

docker rmi <image>

查看Pod列表

crictl pods

N/A

N/A

查看Pod詳情

crictl inspectp <pod name>

N/A

N/A

啟動Pod

crictl runp <pod name>

N/A

N/A

停止Pod

crictl stopp <pod name>

N/A

N/A

相關文檔