
【Docker基礎】Dockerと仮想化技術の違い
Docker はよく仮想化技術(VirtualBox や VMware など)と比較されがちですが、実は 「サーバをまるごと仮想化する」 ものではありません。正しくは、「ホストの OS 機能を一部借りながら、実行環境をコンテナとして隔離する」技術です。ここでは、Docker と一般的な仮想化技術の仕組みを簡単に比較し、その違いをわかりやすく解説します。

仮想化技術とは
仮想化技術(VirtualBox、VMware、AWS EC2 など)では、あたかも物理的なマシンが存在するかのように ハードウェアをソフトウェアでエミュレート します。
仮想マシン (VM)
- マザーボード、CPU、メモリなどのハードウェアを“ソフトウェア”で再現
- 1台のホスト上に複数の“疑似マシン”を用意できる。独立したマシンとして認識されるので、好きな OS(Windows、Linux など)を入れて運用可能
代表的な仮想化ソフトウェア
- VirtualBox:オラクル社の無料ツール
- VMware:商用の有力ツール
- Hyper-V:Windows Server 搭載の仮想化機能
- AWS EC2:Amazon Web Services 上で提供される仮想マシン環境
Docker は「OSごと仮想化」ではない

Docker は VM のように ハードウェアを仮想化しません。その代わり、ホストのカーネル(Linux)を共有 しつつ、コンテナ内部を論理的に分離(名前空間、cgroups など)して軽量な実行環境を提供します。
仮想化技術 (VM) | Docker (コンテナ) | |
---|---|---|
仮想化の単位 | ハードウェア全体 (CPU, メモリ, HDD など) | プロセスレベルで OS 機能を共有し、一部を隔離 |
OSの扱い | 各 VM にフルの OS をインストール可能 | コンテナ内は “OSっぽいもの” だが、実際にはホストの OS カーネルを共有 |
リソース消費 | OS ごと起動するため重い (ブートやメモリ消費が大きい) | 軽量 (コンテナの起動が速く、メモリ消費も少ない) |
バージョン依存 | どんな OS でも自由にインストール可能 | ホスト側が Linux である必要がある (Windows/Mac でも裏で Linux VM を使う) |
なぜホストが Linux 必須なのか?
Docker コンテナは Linux のカーネル機能を利用 して分離を実現しているため、ホストが Linux であることが前提です。
- Windows や Mac 上で Docker を動かす場合でも、裏で WSL2 (Windows) や HyperKit (Mac) などの方法で Linux 環境を用意している。
- コンテナ内に見える “OS (Linux)” はフル機能ではなく、ホスト Linux に依存しながら動作する。
AWS EC2 と Docker の違い
AWS の EC2 は、VirtualBox や VMware と同じく 仮想マシン (VM) 環境 です。インスタンス(仮想マシン)を立ち上げると、そこには完全に独立した OS が動き、何をインストールしても基本的には干渉し合いません。
- EC2 の “AMI” は Docker の “イメージ” と似ていますが、AMI は VM 全体 (OS含む) を保存したもの。
- Docker のイメージは “OS の一部 + アプリケーション + ライブラリ” などをパッケージ化したもので、フル OS ではない。
まとめ
- 仮想マシン (VM):ハードウェアレベルで仮想化し、完全に独立した OS をブートする
- Docker (コンテナ):Linux のカーネルを共有しつつ、論理的にプロセスやファイルシステムを分離
- Docker は VM と比べて 軽量・高速起動 が特徴。ただし ホストは Linux が必須 という条件がある
- AWS EC2 は VM ベースの仮想マシンなので、Docker との構造的な違い は VirtualBox や VMware と同様
このように、Docker は OS をまるごと仮想化する従来型の技術とは異なり、「ホスト OS の Linux 機能」を活用して実行環境を分離する軽量コンテナ です。次の章では、Docker コンテナが持つ「軽量かつ素早く起動できるメリット」や「環境差異を吸収する利点」について、さらに詳しく掘り下げていきます。