Linuxを扱う上で避けて通れないのが「仮想マシン」と「コンテナ」の理解です。この記事では、それぞれの基本技術、特徴、操作方法までを分かりやすく解説します。
目次
✅ 1. 仮想マシン(Virtual Machine)とは?
仮想マシンとは、物理的なコンピューター(ホスト)上にソフトウェアで「仮想的なコンピューター(ゲスト)」を作り出す技術です。
特徴
- 完全なOSを動かせる(WindowsやLinuxなど)
- ホストOSとは独立して動作
- 各仮想マシンに個別のカーネルが存在する
🧠 2. ハイパーバイザーとは?
仮想マシンを実現するための基盤が「ハイパーバイザー」です。
ハイパーバイザーの種類
- Type 1(ネイティブ): 直接ハードウェア上で動作(例: VMware ESXi)
- Type 2(ホスト型): ホストOS上で動作(例: VirtualBox)
🔧 3. カーネルと仮想マシンの関係
仮想マシンは独自のカーネルを持つため、ホストOSと完全に分離されています。そのため、OSごとに異なるカーネルやライブラリの構成が可能です。
📦 4. コンテナとは?
コンテナとは、ホストOSのカーネルを共有しながらアプリケーションを軽量に動作させる仮想化技術です。
特徴
- 高速起動(数秒以内)
- リソース消費が少ない
- ホストOSのカーネルを共有する
- 主にアプリケーション単位で仮想化
🆚 5. 仮想マシンとコンテナの違い
| 項目 | 仮想マシン(VM) | コンテナ |
|---|---|---|
| カーネル | 各VMが独立したカーネル | ホストOSのカーネルを共有 |
| 起動時間 | 数十秒〜数分 | 数秒 |
| リソース消費 | 高い | 少ない |
| 利用目的 | OS全体を仮想化 | アプリ単位の実行環境の提供 |
🚀 6. 基本操作コマンド
仮想マシンの操作(virsh)
virsh start vm-name # 仮想マシンの起動
virsh shutdown vm-name # 仮想マシンの停止
virsh list --all # 仮想マシンの一覧表示
コンテナの操作(Docker)
docker run -it ubuntu /bin/bash # 新しいコンテナ起動
docker start コンテナID # 既存のコンテナを起動
docker stop コンテナID # コンテナを停止
docker ps -a # 全コンテナの表示
🔐 7. ホストOSとの関係(コンテナの場合)
コンテナはホストOSのユーザー空間(User Space)で動作します。カーネルの機能(名前空間、cgroupsなど)を使って隔離されており、セキュアかつ効率的に動作します。
✏️ まとめ
仮想マシンとコンテナは、どちらも仮想化技術ですが用途や特徴が大きく異なります。以下のように使い分けましょう。
- 仮想マシン:異なるOSの検証・複数のOSを使い分ける場合
- コンテナ:高速・軽量なアプリ実行環境を作る場合
🎁 おまけ:練習環境を作るなら?
- 仮想マシン:VirtualBox + Ubuntu
あわせて読みたい


VirtualBoxを使ってLinuxテストサーバーを簡単に構築する方法!
はじめに 「Linuxの勉強をしたいけど、いきなり本番環境を触るのは怖い…」そんなあなたにおすすめなのが、VirtualBoxを使ったテストサーバーの構築です!この記事では、…
これで簡単に試せます!
PCをお持ちの方は無料で簡単にできますので、実際にやってみることでとても理解しやすくなります!

コメント