すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Docker、containerd、Sandboxed-Container の比較

最終更新日:Nov 09, 2025

Container Service for Kubernetes (ACK) は、containerd、Sandboxed-Container、Docker のコンテナーランタイムをサポートしています。このトピックでは、これらのランタイムを実装、制限、デプロイメントアーキテクチャの観点から比較し、ニーズやシナリオに適したコンテナーランタイムを選択するのに役立ちます。

実装と制限の観点からの比較

機能

containerd

Sandboxed-Container

Docker (メンテナンス終了)

クラスタータイプ

  • ACK マネージドクラスター

  • ACK 専用クラスター

  • ACK Edge クラスター

  • ACK マネージドクラスター

  • ACK 専用クラスター

すべてのタイプの ACK クラスター

Kubernetes バージョン

バージョン 1.20 以降

Kubernetes 1.16 以降

Kubernetes 1.22 以前

説明

containerd への移行を推奨します。詳細については、「Docker から containerd への移行」をご参照ください。

ノードタイプ

  • ECS

  • セルフマネージドノード (ACK Edge クラスター)

ECS ベアメタルインスタンスファミリーのみがサポートされています

ECS

ノードオペレーティングシステム

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 を使用する場合、専用 Elastic Network Interface (ENI) モードと DataPath v2 機能はサポートされていません。

    • Flannel

    • Terway

    Kube-proxy モード

    • iptables

    • IPVS

    • iptables

    • IPVS

    • iptables

    • IPVS

    ボリュームプラグイン

    CSI プラグイン (ACK Edge クラスターを除く)

    CSI プラグイン

    CSI プラグイン

    コンテナールートファイルシステム

    OverlayFS

    ディスククォータ構成の OverlayFS

    OverlayFS

    説明
    • 同じノードに Docker と Sandboxed-Container の両方をデプロイすることはできません。異なるノードプールを作成して、Docker ランタイムノードと Sandboxed-Container ランタイムノードを一緒にデプロイできます。

    • Sandboxed-Container は containerd に基づいて実装されています。kubectl get node またはコンソールのノードリストを使用して Sandboxed-Container ノード情報を表示すると、ノードランタイムは containerd として表示されます。

    • 詳細については、「CRD を使用して Sidecar モードでコンテナーテキストログを収集する」をご参照ください。

    デプロイメントアーキテクチャの観点からの比較

    ランタイム

    デプロイメントアーキテクチャ

    Docker

    kubelet
    └── dockerd
        └── containerd
            └── containerd-shim
                └── runC containers
    

    containerd

    kubelet
    └── containerd
        └── containerd-shim
            └── runC containers
    

    Sandboxed-Container v2

    kubelet
    ├── (CRI) containerd
    │   ├── containerd-shim
    │   │   └── runC containers
    │   └── containerd-shim-runv2
    │       └── runV sandboxed containers
    

    Docker Engine と containerd が提供する一般的に使用されるコマンドの比較

    Docker ランタイムと Sandboxed-Container ランタイムは、それぞれコンテナーエンジンとして 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>

    ローカルの stdin、stdout、stderr をコンテナーにアタッチ

    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

    参照