タイトル: 仮想環境
本稿は仮想環境関連のソフトウェアに関する記事です。物理マシン上に隔離された実行環境を作って、独立したOS/ランタイムを動かす技術をまとめています。
子ページからソフトウェアを選択してください。
仮想環境の種類
| 種類 | 特徴 | 代表例 |
|---|---|---|
| コンテナ型 | 軽量・起動が速い。OSカーネルを共有 | Docker、Podman、containerd |
| ホスト型 VM | ホストOS上で動く仮想マシン | VirtualBox、VMware Workstation |
| ハイパーバイザ型 VM | ベアメタル上で直接動作。サーバ向け | VMware ESXi、KVM、Hyper-V |
| クラウドVM | クラウド事業者が提供する仮想マシン | AWS EC2、GCE、Azure VM |
| 言語ランタイム仮想化 | 言語ごとの依存分離 | Python venv、Node nvm、Ruby rbenv |
本ページの子ページ
- Docker — コンテナ型仮想環境の事実上の標準。アプリと依存を一緒にイメージ化し、どこでも同じ環境で動かせる
用途別の選び方
- 開発環境を統一したい → Docker
- 本番サーバーを集約したい → KVM / VMware ESXi(ハイパーバイザ型)
- Windowsデスクトップで別OSを試したい → VirtualBox / Hyper-V
- Pythonの依存分離だけしたい → venv (Python環境構築)
仮想環境を使うメリット
- 環境差異の解消: 「自分のPCでは動くのに...」を防ぐ
- クリーンな再現: イメージから常に同じ状態で起動
- 分離による安全性: ホストOSへの影響を最小化
- 移植性: 同じ設定を別マシンや本番に持ち込みやすい
注意点
- ホスト型VMはコンテナより重い。短時間の試験ならDockerが手軽
- 本番でDockerを使う場合は Kubernetes / ECS / Fargate 等のオーケストレーション層を別途検討
- 仮想環境内のデータ永続化は、コンテナ/VMの設計時に明示する必要がある