環境
- 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)を使っている開発も並行して行うために、この方法を取ることにした。