【コンテナディー】

containerd とは?

最終更新:
💡 コンテナを動かす裏方の仕事人

containerdとは、ホスト上でコンテナイメージの取得・保存や、コンテナの起動・停止などを管理するコンテナランタイム。Docker Engineの内部で使われるほか、CRIを通じてKubernetesから利用できる。

📌 このページのポイント
containerd:コンテナ管理の裏方KuberneteskubeletDocker EngineCRIAPIcontainerdイメージ・起動・停止を管理Kubernetesでは他の選択肢もあるruncなど低レベルの実行処理コンテナ
代表的なLinux構成のイメージ。Docker Engineからの経路とKubernetesのCRIを分けて示しています。
ひよこ ひよこ
containerdって、Dockerとは違うの?
ペンギン先生 ペンギン先生
Docker Engineから使われる部品の一つだよ。Dockerは利用者向けの操作や、ビルド・ネットワークなどの仕組みを提供する。その裏側で、イメージやコンテナの実行を管理するのがcontainerdなんだ。
ひよこ ひよこ
なんでわざわざ分かれているの?
ペンギン先生 ペンギン先生
コンテナの管理を、別の仕組みからも利用できるようにするためだね。containerdは一つのホストの管理を担い、複数のホストへの配置などはKubernetesのような上位の仕組みが担当するよ。
ひよこ ひよこ
Kubernetesは、必ずcontainerdを使うの?
ペンギン先生 ペンギン先生
必ずではないよ。KubernetesはCRIという共通インターフェースに対応するランタイムを使うんだ。containerdのほか、CRI-Oなどの選択肢があるよ。
ひよこ ひよこ
KubernetesのDocker対応がなくなったと聞いたけど?
ペンギン先生 ペンギン先生
Kubernetes本体のdockershimというDocker Engine向けの連携部品は、v1.24で削除されたよ。それはcontainerdを唯一の標準にした、という意味ではないんだ。Dockerで作ったイメージも、対応するランタイムで引き続き使えるよ。
ひよこ ひよこ
runcやCRIとも関係があるの?
ペンギン先生 ペンギン先生
CRIはKubernetesとの窓口だよ。一方、Linuxでコンテナを起動する際には、containerdがruncなどの低レベルのOCIランタイムを利用するんだ。運用時はCRIの有効化や、ランタイムとKubernetesの設定の対応も確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「containerd」って出てきたら「コンテナのイメージや起動・停止を管理する裏方」と思えばだいたいOK!
📖 おまけ:英語の意味
「containerd」 = コンテナのデーモン
💬 containerと、バックグラウンドで動くdaemonを表すdを組み合わせた名前だよ。コンテナを管理する常駐プロセスとして働くんだ。

参考資料

← 用語集にもどる