コンテナ@仮想化¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. コンテナエンジン¶
コンテナエンジンとは¶
クライアントからリクエストを受信し、コンテナライムを操作する。
コンテナエンジンの種類¶
- Docker Engine
- Podman
02. コンテナランタイムとは¶
コンテナのライフサイクル (例:イメージのプル、コンテナ作成削除、コンテナ起動停止など) を管理する。
02-02. CRIランタイム¶
CRIランタイムとは¶
高レベルなランタイムであり、Podやコンテナを管理する。
- containerd
- CRI-O
- Docker runtime
機能¶
▼ コンテナの起動¶
OCIランタイム (例:runC) と単一/複数のCNIプラグイン (例:flannel) のバイナリを実行し、コンテナを起動する。
- https://karampok.me/posts/container-networking-with-cni/
- https://github.com/containernetworking/cni/blob/main/SPEC.md#lifecycle--ordering
- https://zenn.dev/hodagi/articles/643d7819c9582d0ed948#cni%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9%E4%BB%95%E6%A7%98%E6%9B%B8
▼ イメージレイヤーのキャッシュ¶
コンテナランタイム (例:Docker、Containerdなど) は、ベースイメージを含む各イメージレイヤーをキャッシュとしてローカルストレージ (例:var/lib/docker
ディレクトリ、var/lib/containerd
ディレクトリなど) に保管する。
02-03. OCIランタイム¶
OCIランタイムとは¶
低レベルなランタイムであり、コンテナホストのカーネルと通信し、コンテナの作成に必要な環境を整備する。
- runC
- crun
- gVisor
- Kata Containers Runtime