仮想マシン(VM) と Dockerコンテナ の構造比較
完全に独立したOSを持つ「VM」と、1つのカーネルを極限まで分け合う「コンテナ」のアーキテクチャ。
初心者向け:例え話で納得する違い
🏡 仮想マシンは「一戸建て」
家ごとに、水道、電気の配線、警備会社、全部を個別に用意します。完全に独立していて安全ですが、家を建てるのに時間がかかり(起動が数分)、土地も広く必要です。🏢 コンテナは「シェアアパート」
1つの頑丈なビルの土台、配管、セキュリティをみんなで直接使いまわします。自分の部屋には鍵がかかっているので干渉しません。家を建てる必要がないため一瞬で部屋を用意でき(起動がミリ秒)、非常に省スペースです。
仮想マシン (Virtual Machine)
STOPPED
アプリ / 依存ライブラリ (App A, B, C)
ゲストOS (完全な独自カーネル)
※ 各VMごとに数GB〜数十GB必要
ハイパーバイザー (Hyper-V / ESXi / VirtualBox)
ホストOS (Windows / macOS / Linux)
物理サーバー (CPU / メモリ / ストレージ)
OSブート時間 (システムロード):
--
ホストメモリ消費:
0 MB
Docker コンテナ (Container)
STOPPED
App 1 (Node)
App 2 (Go)
App 3 (Py)
Docker Engine (runc, containerd)
※ OSを内包せず、カーネルのプロセス空間を直結
ホストOSカーネルを直接共有 (Linux Kernel)
NO OVERHEAD
ホストOS (Linux)
物理サーバー (CPU / メモリ / ストレージ)
コンテナ起動時間 (プロセス起動):
--
ホストメモリ消費:
0 MB
リソーススケール・耐久テスト
同じスペックの物理サーバーで何台動かせるかをシミュレートします。
VM増設 (2.0GB空きサーバー)
0 台起動中
コンテナ増設 (2.0GB空きサーバー)
0 台起動中