【コンテナランタイム】
コンテナランタイム とは?
💡 コンテナに「走れ!」と命令する司令官
📌 このページのポイント
- コンテナイメージから実際にプロセスを立ち上げる実行エンジン
- 低レベル(runc)と高レベル(containerd)の2層構造になっている
- OCI標準に準拠することで複数のランタイムが互換性を持つ
- DockerもKubernetesも内部でコンテナランタイムを使っている
コンテナランタイムって何? Dockerとは違うの?
じゃあDockerの中にコンテナランタイムが入ってるってこと?
そうだよ。DockerはUIや設定管理を担い、内部でcontainerdというランタイムを呼び出してる。さらにその下にruncという超低レベルのランタイムがあるんだ。
2層構造になってるんだね!上と下で役割が違うの?
うん。上位の「高レベルランタイム」(containerdなど)はイメージの取得やライフサイクル管理を担い、下位の「低レベルランタイム」(runcなど)はLinuxのcgroupsやnamespaceを直接操作してプロセスを分離するよ。
KubernetesもコンテナランタイムってどうやってつながってるのかなThe?
KubernetesはCRI(Container Runtime Interface)というAPIを通じてランタイムと通信するよ。containerdやCRI-Oなど複数のランタイムを差し替えられるようになってるんだ。
規格があるから取り替えられるんだね!
まとめ:ざっくりこれだけ覚えればOK!
「コンテナランタイム」って出てきたら「コンテナを実際に動かすエンジン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Container Runtime」 = コンテナ実行環境
💬 RuntimeはプログラムをOSの上で動かす実行環境のこと。コンテナランタイムはコンテナという仮想単位を実際に走らせる仕組みだよ。