開発環境を構築するとき、「自分のPCでは動くのに、他の人の環境では動かない」という経験はありませんか?
そんな問題を解決してくれるのが、今回紹介する「Vagrant(ベイグラント)」です。
この記事では、Vagrantの基本的な概念から、実際の使い方、メリットまでを分かりやすく解説していきます。
Vagrantとは何か?
Vagrantは、HashiCorp社が開発しているオープンソースの仮想環境構築・管理ツールです。
仮想マシンの作成、起動、停止、削除といった操作を、シンプルなコマンドで実行できるようにしてくれます。
Vagrantを使うと、複雑な仮想環境の構築作業を自動化でき、チーム全員が同じ開発環境で作業できるようになります。
仮想化ソフトとの違い
ここで注意したいのが、Vagrant自体は仮想マシンを動かすソフトではないという点です。
実際に仮想マシンを動かすには、VirtualBoxやVMware、Hyper-VといったPCを仮想化するソフトウェアが別途必要になります。
Vagrantは、これらの仮想化ソフトを簡単に操作するためのツールという位置づけです。
当初はVirtualBoxのみに対応していましたが、現在ではVMware、Docker、Amazon EC2などの様々な環境にも対応しています。
Vagrantの主な特徴
Vagrantには以下のような特徴があります。
- シンプルなコマンドで仮想環境を操作できる
- 設定ファイル(Vagrantfile)で環境構築を自動化できる
- 設定ファイルをチーム内で共有すれば、全員が同じ環境を構築できる
- 既存の仮想マシンイメージ(Box)を利用して、すぐに環境を立ち上げられる
なぜVagrantを使うのか?
Vagrantを使うことで、開発現場で起こりがちな問題を解決できます。
「自分のPCでは動くのに…」問題を解決
開発者それぞれが異なるOS、異なるバージョンのソフトウェアを使っていると、「自分の環境では動いているのに、他の人の環境では動かない」という問題が発生します。
Vagrantを使えば、チーム全員が全く同じ開発環境で作業できるため、この問題を根本から解決できます。
環境構築の時間を大幅に短縮
従来の方法だと、仮想マシンを立ち上げるには以下のような手順が必要でした。
- LinuxなどのOSイメージ(ISOファイル)をダウンロード
- VirtualBoxなどで仮想マシンを作成
- メモリやディスク容量などの設定
- ISOファイルから仮想マシンにOSをインストール(15〜30分待機)
- 必要なソフトウェアを個別にインストール
この一連の作業には1時間以上かかることも珍しくありません。
しかしVagrantなら、たった数分、場合によっては数十秒で同じ環境を構築できます。
実験環境を何度でも作り直せる
Vagrantで作った環境は、壊しても簡単に作り直せます。
「新しいライブラリを試したいけど、既存の環境を壊したくない」というときも、Vagrantなら気軽に実験環境を作って、不要になったら削除できます。
Vagrantの基本的な仕組み
Vagrantを理解するために、いくつかの重要な用語を覚えておきましょう。
Box(ボックス)
Boxとは、仮想マシンのテンプレートとなるイメージファイルのことです。
物理マシンで言うと、OSがインストールされたハードディスクに相当します。
Ubuntu、CentOS、Windowsなど、様々なOSのBoxが公開されており、これを利用することで簡単に仮想環境を立ち上げられます。
世界中の開発者がBoxを公開している「HCP Vagrant Registry」(旧Vagrant Cloud)というサイトから、無料でBoxをダウンロードできます。
Vagrantfile(ベイグラントファイル)
Vagrantfileは、仮想マシンの設定を記述する設定ファイルです。
このファイルには、使用するBox、ネットワーク設定、メモリ容量、インストールするソフトウェアなどを記述します。
Vagrantfileをチーム内で共有すれば、全員が同じ環境を構築できるわけです。
プロバイダ(Provider)
プロバイダとは、実際に仮想マシンを動かす仮想化ソフトウェアのことです。
VirtualBox、VMware、Hyper-V、Dockerなどがプロバイダとして利用できます。
プロビジョニング(Provisioning)
プロビジョニングとは、仮想マシンにソフトウェアをインストールしたり、設定を変更したりすることです。
Vagrantでは、シェルスクリプトやAnsible、Chef、Puppetなどのツールを使ってプロビジョニングを自動化できます。
Vagrantのインストール方法
Vagrantを使い始めるには、まず以下の2つをインストールする必要があります。
1. VirtualBoxのインストール
VagrantはVirtualBoxと組み合わせて使うのが最も一般的です。
VirtualBoxの公式サイトから、自分のOSに合ったインストーラーをダウンロードしてインストールします。
インストーラーの指示に従って進めれば、特に難しいことはありません。
2. Vagrantのインストール
Vagrantの公式サイトから、自分のOSに合ったインストーラーをダウンロードします。
Windows、macOS、Linuxのいずれにも対応しています。
インストール後、コマンドプロンプトやターミナルで以下のコマンドを実行して、正しくインストールされたか確認しましょう。
vagrant --version
バージョン情報が表示されれば、インストール成功です。
Vagrantの基本的な使い方
それでは、実際にVagrantを使って仮想マシンを立ち上げてみましょう。
1. プロジェクトディレクトリの作成
まず、Vagrant用のディレクトリを作成します。
mkdir my-vagrant-project
cd my-vagrant-project
2. Vagrantfileの初期化
次に、Vagrantfileを作成します。
ここでは、Ubuntu 24.04のBoxを使う例を紹介します。
vagrant init hashicorp-education/ubuntu-24-04
このコマンドを実行すると、現在のディレクトリに「Vagrantfile」という設定ファイルが作成されます。
3. 仮想マシンの起動
以下のコマンドで仮想マシンを起動します。
vagrant up
初回実行時は、指定したBoxのダウンロードが行われるため、少し時間がかかります。
しかし、一度ダウンロードすれば次回からはすぐに起動できます。
4. 仮想マシンへのログイン
仮想マシンが起動したら、以下のコマンドでSSH接続できます。
vagrant ssh
このコマンドを実行すると、仮想マシンのコマンドラインに入れます。
ユーザー名やパスワード、IPアドレスなどを指定する必要はありません。
5. 仮想マシンの停止
作業が終わったら、以下のコマンドで仮想マシンを停止できます。
vagrant halt
このコマンドは、物理マシンのシャットダウンと同じです。
仮想マシンに対して行った変更は保持されます。
6. 仮想マシンの削除
仮想マシンを完全に削除したい場合は、以下のコマンドを実行します。
vagrant destroy
このコマンドを実行すると、仮想マシンが完全に削除され、行った変更も破棄されます。
ただし、Boxのイメージ自体は削除されないため、再び「vagrant up」を実行すれば、クリーンな環境を再構築できます。
よく使うVagrantコマンド一覧
Vagrantには、仮想マシンを管理するための様々なコマンドがあります。
vagrant up– 仮想マシンを起動(初回はBoxのダウンロードと設定も実行)vagrant halt– 仮想マシンを停止vagrant reload– 仮想マシンを再起動し、Vagrantfileの変更を反映vagrant ssh– 仮想マシンにSSH接続vagrant status– 仮想マシンの現在の状態を確認vagrant destroy– 仮想マシンを完全に削除vagrant suspend– 仮想マシンを一時停止(サスペンド)vagrant resume– 一時停止した仮想マシンを再開vagrant box list– ローカルに保存されているBoxの一覧を表示vagrant box add <box名>– Boxを追加
Vagrantfileのカスタマイズ
Vagrantfileを編集することで、仮想マシンの設定をカスタマイズできます。
メモリとCPUの設定
仮想マシンのメモリとCPUを変更する例です。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048" # 2GBのメモリ
vb.cpus = 2 # 2つのCPUコア
end
end
ネットワーク設定
仮想マシンにIPアドレスを割り当てる例です。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.network "private_network", ip: "192.168.33.10"
end
この設定により、ホストマシンから192.168.33.10でアクセスできるようになります。
ポートフォワーディング
ホストマシンのポートを仮想マシンのポートに転送する設定です。
Webサーバーなどを仮想マシンで動かす場合に便利です。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.network "forwarded_port", guest: 80, host: 8080
end
この設定で、ホストマシンのlocalhost:8080にアクセスすると、仮想マシンのポート80に転送されます。
共有フォルダ
ホストマシンと仮想マシンでフォルダを共有する設定です。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.synced_folder "./data", "/vagrant_data"
end
この設定により、ホストマシンの./dataディレクトリが、仮想マシンの/vagrant_dataに同期されます。
プロビジョニングスクリプト
仮想マシン起動時に自動的にソフトウェアをインストールする設定です。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y apache2
SHELL
end
この設定により、仮想マシン起動時に自動的にApacheがインストールされます。
VagrantとDockerの違い
Vagrantと似たツールとして、Dockerがあります。
両者の違いを理解しておきましょう。
Vagrant(仮想マシン)の特徴
- OS全体を仮想化するため、完全な分離が実現できる
- セキュリティと分離性能が高い
- リソース(メモリ、CPU)の消費が比較的大きい
- 起動に数分かかることがある
Docker(コンテナ)の特徴
- OSのカーネルを共有するため、軽量で高速
- リソース消費が少なく、多数のコンテナを同時に実行できる
- 起動が数秒で完了する
- イメージのサイズが小さい
VagrantとDockerの併用
VagrantとDockerは排他的な技術ではありません。
例えば、以下のような使い分けや併用が可能です。
- アプリケーション開発にはDockerを使い、特殊な環境の検証にはVagrantを使う
- Vagrantで作った仮想マシン内でDockerを実行する
- Dockerの新バージョンをテストするために、Vagrant環境を用意する
Vagrantの活用例
Vagrantは様々な場面で活用できます。
チーム開発での環境統一
開発チーム全員が同じVagrantfileを使うことで、全員が全く同じ開発環境で作業できます。
新しいメンバーが参加しても、数分で開発環境をセットアップできます。
学習や実験環境
新しいプログラミング言語やフレームワークを試すとき、メインの環境を汚さずに実験できます。
不要になったら「vagrant destroy」で簡単に削除できるため、気軽に試せます。
テスト環境の構築
本番環境に近い環境でテストを行いたい場合、Vagrantで本番環境を再現できます。
CIツールと組み合わせて、自動テスト環境を構築することも可能です。
マルチマシン構成
Vagrantfileで複数の仮想マシンを定義すれば、WebサーバーとDBサーバーを分けた環境なども簡単に構築できます。
Vagrant.configure("2") do |config|
config.vm.define "web" do |web|
web.vm.box = "ubuntu/focal64"
web.vm.network "private_network", ip: "192.168.33.10"
end
config.vm.define "db" do |db|
db.vm.box = "ubuntu/focal64"
db.vm.network "private_network", ip: "192.168.33.11"
end
end
Vagrantを使う際の注意点
Vagrantは便利なツールですが、いくつか注意点もあります。
リソース消費
仮想マシンは、ホストマシンのメモリとCPUを消費します。
複数の仮想マシンを同時に起動すると、マシンが重くなる可能性があるため、適切なリソース管理が必要です。
VirtualBoxのGUI起動
VagrantでVirtualBoxを使う場合、VirtualBoxのGUIを起動していると、Vagrantのコマンドがエラーになることがあります。
Vagrantを使う際は、VirtualBoxのGUIを終了しておきましょう。
プロキシ環境での使用
企業などプロキシを経由してインターネットに接続している環境では、Vagrantにもプロキシ設定が必要な場合があります。
Google Workspace/仕事用アカウントでの制限
これはGeminiなど他のツールの話ですが、仕事用アカウントでは管理者の設定により、一部機能が制限されることがあります。
Vagrantは個人の開発環境で使うツールなので、この点は問題になりませんが、覚えておくとよいでしょう。
まとめ
Vagrantは、仮想環境の構築と管理を劇的に簡単にしてくれるツールです。
この記事で紹介した内容をまとめると以下のようになります。
- Vagrantは仮想マシンを簡単に構築・管理できるツール
- VirtualBoxなどの仮想化ソフトと組み合わせて使用する
- Vagrantfileという設定ファイルで環境を定義できる
- チーム全員が同じ開発環境で作業できる
- 既存のBoxを利用すれば、数分で環境を構築できる
- シンプルなコマンドで仮想マシンを操作できる
- DockerやAnsibleなど他のツールと組み合わせて使える
Vagrantを使いこなせば、「自分のPCでは動くのに…」という問題から解放され、環境構築の時間を大幅に短縮できます。
まずは簡単なUbuntu環境を立ち上げてみて、Vagrantの便利さを体感してみてください。
最終更新日:2026年2月4日

コメント