【コンテナランタイム】

コンテナランタイム とは?

💡 コンテナに「走れ!」と命令する司令官
📌 このページのポイント
コンテナランタイムの2層構造 Docker / Kubernetes 高レベルランタイム containerd / CRI-O 低レベルランタイム runc(OCI準拠) Linux Kernel (cgroups / namespace) イメージ管理 ライフサイクル制御 プロセス生成 名前空間分離
コンテナランタイムの2層構造(高レベル・低レベル)
ひよこ ひよこ

コンテナランタイムって何? Dockerとは違うの?

ペンギン先生 ペンギン先生

Dockerコンテナを使うための総合ツールで、コンテナランタイムはその中でコンテナを実際に「起動・停止する」専門の部品だよ。

ひよこ ひよこ

じゃあDockerの中にコンテナランタイムが入ってるってこと?

ペンギン先生 ペンギン先生

そうだよ。DockerUIや設定管理を担い、内部でcontainerdというランタイムを呼び出してる。さらにその下にruncという超低レベルのランタイムがあるんだ。

ひよこ ひよこ

2層構造になってるんだね!上と下で役割が違うの?

ペンギン先生 ペンギン先生

うん。上位の「高レベルランタイム」(containerdなど)はイメージの取得やライフサイクル管理を担い、下位の「低レベルランタイム」(runcなど)はLinuxcgroupsやnamespaceを直接操作してプロセスを分離するよ。

ひよこ ひよこ

KubernetesもコンテナランタイムってどうやってつながってるのかなThe?

ペンギン先生 ペンギン先生

KubernetesはCRI(Container Runtime Interface)というAPIを通じてランタイムと通信するよ。containerdCRI-Oなど複数のランタイムを差し替えられるようになってるんだ。

ひよこ ひよこ

規格があるから取り替えられるんだね!

ペンギン先生 ペンギン先生

その通り。OCIという標準規格のおかげで、どのランタイムでも同じコンテナイメージを動かせる互換性が保たれてるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「コンテナランタイム」って出てきたら「コンテナを実際に動かすエンジン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Container Runtime」 = コンテナ実行環境
💬 RuntimeはプログラムをOSの上で動かす実行環境のこと。コンテナランタイムはコンテナという仮想単位を実際に走らせる仕組みだよ。
← 用語集にもどる