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

Container Service for Kubernetes:containerd、Sandboxed-Container、Docker ランタイムの比較

最終更新日:Jun 24, 2026

ACK は containerd、Sandboxed-Container、Docker をサポートしています。分離モデル、使用制限、デプロイメントアーキテクチャを比較して、ワークロードに適したランタイムを選択してください。

重要

Docker ランタイムはメンテナンスが終了しました。クラスターで Docker を実行している場合は、containerd へ移行してください。

コンテナランタイムが Kubernetes ノードに組み込まれる仕組み

コンテナランタイムは、各ノードでコンテナのライフサイクルを管理します。kubelet は、コンテナランタイムインターフェース (CRI) を介してランタイムと通信します。ランタイムの選択により、分離モデル、サポートされるノードタイプ、利用可能な CLI ツールが決まります。

ACK は以下のランタイムをサポートしています。

  • containerd — ほとんどのワークロードに推奨します。軽量で、CRI に直接準拠しており、中間デーモンが不要です。

  • Sandboxed-Container — 軽量 VM (runV) を使用して、各 Pod を分離されたカーネルで実行します。

  • Docker (メンテナンス終了) — containerd へ移行してください。

機能と制限

機能

containerd

Sandboxed-Container

Docker (メンテナンス終了)

クラスタータイプ

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

  • ACK 専用クラスター

  • ACK Edge クラスター

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

  • ACK 専用クラスター

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

Kubernetes バージョン

1.20 以降

1.16 以降

1.22 以前

ノードタイプ

  • Elastic Compute Service (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

モニタリング

サポート対象

サポート対象

サポート対象

コンテナログ収集

サポート対象

手動でのサイドカーインジェクションが必要です。「CRD を使用してサイドカーモードでコンテナテキストログを収集する」をご参照ください。

サポート対象

コンテナ標準出力収集

サポート対象

サポート対象

サポート対象

RuntimeClass

サポート対象外

サポート対象 (runV)

サポート対象外

Pod スケジューリング

設定は不要です。

以下の設定を追加します。

  • Kubernetes 1.14.x の場合、nodeSelector に以下を追加します。

    alibabacloud.com/sandboxed-container: Sandboxed-Container.runv
  • 1.16.x 以降の場合、追加の設定は不要です。

設定は不要です。

HostNetwork

サポート対象

サポート対象外

サポート対象

ノードデータディスク

オプション

必須。最低 200 GiB。

オプション

ネットワークプラグイン

  • Flannel

  • Terway (ACK Edge クラスター を除く)

  • Flannel

  • Terway では、排他 ENI モードと DataPath v2 はサポート対象外です。

  • Flannel

  • Terway

kube-proxy モード

  • iptables

  • IPVS

  • iptables

  • IPVS

  • iptables

  • IPVS

ボリュームプラグイン

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

CSI プラグイン

CSI プラグイン

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

OverlayFS

OverlayFS (ディスククォータあり)

OverlayFS

説明

Docker と Sandboxed-Container は同じノードで共存できません。クラスター内で両方を使用する場合は、ランタイムごとに個別のノードプールを作成してください。

説明

Sandboxed-Container は containerd 上で実行されます。kubectl get node または ACK コンソールでノードを確認すると、ランタイムは containerd と表示されます。

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

kubelet からコンテナへのコールチェーンは、ランタイムによって異なります。レイヤーが少ないほど、オーバーヘッドと複雑さが低減されます。

ランタイム

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

Docker

kubelet
└── dockerd
    └── containerd
        └── containerd-shim
            └── runC コンテナ

containerd

kubelet
└── containerd
    └── containerd-shim
        └── runC コンテナ

Sandboxed-Container v2

kubelet
├── (CRI) containerd
│   ├── containerd-shim
│   │   └── runC コンテナ
│   └── containerd-shim-runv2
│       └── runV サンドボックスコンテナ

containerd は dockerd レイヤーを削除し、kubelet に直接 CRI アクセスを提供します。Sandboxed-Container v2 は、containerd-shim-runv2 によって containerd を拡張し、runV を介して Pod を軽量 VM で実行することで、標準の runC コンテナと並行してカーネルレベルの分離を実現します。

containerd と Docker の CLI コマンド

containerd と Docker は異なる CLI ツールを使用します。crictl は CRI レベルで動作するため、containerd での使用を推奨します。ctr は containerd の低レベルの代替手段です。

操作

crictl (containerd で推奨)

ctr (containerd 低レベル CLI)

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 task start <container>

docker start <container>

コンテナの停止

crictl stop <container>

ctr -n k8s.io task kill -s SIGTERM <container>

docker stop <container>

コンテナの削除

crictl rm <container>

ctr -n k8s.io c rm <container>

docker rm <container>

イメージの一覧表示

crictl images

ctr -n k8s.io i ls

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

次のステップ

参考