【コンテナランタイム】
コンテナランタイム とは?
最終更新:
💡 配置の指示を受けて、コンテナを実際に動かすエンジン
コンテナの作成・起動・停止などを担う実行用ソフトウェア。containerdのようにイメージや実行状態を管理するものと、runcのようにOS上でプロセスを起動するものがある。クラスタ内の配置を決めるオーケストレーターとは役割が異なる。
📌 このページのポイント
- コンテナの作成・起動・停止など、実行のライフサイクルを扱う
- containerdとruncのように管理と低レベル実行を分担する構成がある
- KubernetesのkubeletはCRIでランタイムと通信する
- OCIの実行仕様は共通化に役立つが、OSや設定の違いまで消すものではない
コンテナランタイムって何?Dockerとは違うの?
Docker Engineはcontainerdを使って実行のライフサイクルを管理するよ。Linuxの代表的な構成では、containerdのshimという仲介部品がruncを呼び、プロセスを起動する。別のランタイムを設定することもできるんだ。
上と下で、役割が違うんだね?
containerdはイメージの取得やファイルの準備、実行状態の管理などを担う。runcはOCIの設定に従ってLinux上でコンテナを起動するよ。管理と低レベル実行を分担する構成例で、どの環境も必ず同じ2層というわけではないんだ。
Kubernetesとは、どうつながっているの?
OCIに対応すれば、どこでも同じように動くの?
まとめ:ざっくりこれだけ覚えればOK!
「コンテナランタイム」って出てきたら「コンテナを実際に動かすエンジン」と思えばだいたいOK!
📖 おまけ:英語の意味
「Container Runtime」 = コンテナ実行環境
💬 Runtimeはプログラムを動かす実行環境を表す言葉だよ。コンテナでは、実行に必要な設定やファイルをもとにプロセスを動かす仕組みを指すんだ