Docker環境構築:Windows+Virtualbox+Vagrant+Ubuntu上にDocker開発環境構築

環境構築

環境

  • Windows 10 Home
  • Virtualbox(イメージはUbuntuを使用)
  • Vagrant
  • Docker(Vagrant上のUbuntuにインストール)

全般的な注意点

  • コマンド実行時の先頭の「>」「$」「#」はプロンプト記号なので入力時は不要。
  • コマンド実行時の行末にコメントを入れている場合がある(入力不要)。

Docker環境構築手順

1. Virtualbox & Vagrant インストール

VirualboxのWindows版をインストール
https://www.virtualbox.org/wiki/Downloads

VagrantのWindows版をインストール
https://www.vagrantup.com/downloads

2. Vagrantfile作成&編集

Vagrantfile作成

コマンドプロンプトで操作
※{user}は自分のWindowsユーザ名を指定する。

> cd C:\Users\{user}\vagrant\ (←任意のフォルダに移動) > mkdir ubuntu (←今回用にフォルダの作成) > cd ubuntu (←フォルダに移動) > vagrant init ubuntu/focal64 (←vagrantコマンドでubuntuのイメージを取得する設定のVagrantfileを作成)

→Vagrantfileが出来上がる

Vagrantfile編集

必要であれば次のような編集をする。
念のため元のVagrantfileはコピーして取っておく。

変更箇所1
config.vm.network "private_network", ip: "192.168.33.10"

コメントアウト(先頭の#記号)を削除し、192.168.33.10を変更したい場合は変更

変更箇所2:
config.vm.synced_folder "./sync_dir", "/sync_dir"

Windows側のフォルダとUbuntu側のフォルダの共有設定を行う。今回は特に必要ないが、Windows側のファイルをVirtualbox上のUbuntuと共有したい場合はこの共有設定を行う。
「./sync_dir」がWindows側のフォルダを指す。この場合相対パスなので「cd C:\Users{user}\vagrant\ubuntu\sync_dir」を指す。
「/sync_dir」がUbuntu側のフォルダを指す。

3. 仮想サーバ(今回はUbuntu)を起動

> vagrant up

→Vagrantfileを基に仮想OSがDL&インストール&起動(DL&インストールは初回のみ。初回は時間がかかるので気長に待つ)

> vagrant ssh

→仮想OS(Ubuntu)にSSH接続

4. UbuntuにDocker&docker-composeインストール

Dockerインストール

仮想OS(Ubuntu)で次のコマンドを実行する

$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg $ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io $ sudo docker run hello-world $ sudo usermod -g docker vagrant $ sudo service docker restart $ docker ps

→エラーが出なければOK

※参考:
https://docs.docker.com/engine/install/ubuntu/

docker-composeインストール

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ exit

※「1.29.2」のところはバージョンを選ぶ。V2以降はインストール方法と使えるコマンドが変わるそうなので注意

※参考:
https://docs.docker.jp/compose/install.html

※ここまでのコマンドをVagrantfileのprovisionという設定箇所に書いてもよい(今回は個別で打ってしまった)。Vagrantfileに書く場合は、以下のようにする。

config.vm.provision "shell", privileged: false, inline: <<-SHELL {ここに、ここまでのコマンドを記述} SHELL

※「privileged: false」にするとvagrantユーザで実行してくれるそう。
※なお、apt-getは「-y」オプションを付けて実行する必要がある。(つけないと途中で止まってしまうので)

まとめ

ここまででWindows上のVirtualbox(Vagrant)上のUbuntu上にDockerとdocker-composeのインストールができた。
Windows上にDocker環境を構築するには、最近ではWSL上にUbuntuなどのLinuxを入れてそこにインストールするという方法が増えてきたが、WSLとVirtualboxの併用ができないので、Virtualbox(Vagrant)を使っている開発も並行して行うために、この方法を取ることにした。