Container
コンテナとは、アプリケーションを依存関係とともにパッケージ化する軽量な分離実行環境であり、OS 全体の仮想化を行わずにホストカーネルを共有する。
目的
アプリケーションの可搬性と一貫性を高め、環境のドリフトをなくす。
メカニズム
名前空間がプロセス・ネットワーク・マウントを分離し、cgroup が CPU・メモリ・I/O を制限する。レイヤー化されたイメージ(ユニオンファイルシステム)によりビルドと配布が効率化される。VM より起動が速くリソースも軽い。Docker や containerd が実装である。
ユースケース
- アプリケーションのパッケージ化
- どの環境でも同じ挙動
- マイクロサービスのデプロイ