tsyama記

プログラミングとそのほか

WindowsでVagrant上にDocker環境を作るときのメモ

はじめに

Windows派閥のみなさんがローカルでDocker環境構築に苦労している描写をよく目にします。
最近はだいぶ他の勢力が充実してきて鳴りを潜めている感のあるDocker on Vagrant環境ですが、個人的にはWindows環境を汚さずにあれこれ試せるので好きです。(二重マウントをやっているせいか、マウント周りでのよくわからんエラーも多いですが)

DockerをのっけるVagrant環境はpackageにしちゃってもいいんですが、provisioning fileで管理しておくとInfrastructure as Codeって感じがしてキモチイイので、いつも僕が使っているprovisioning fileの共有と、簡単な説明をしておきます。

ぼくのかんがえたさいきょうローカル環境

github.com

僕がいつも使っている環境はこんなやつです。
ちょこちょこコメントしていきます。

Vagrantfile

ベースになるVagrantのboxはbento:centos-7.3を使ってました。個人の好き好きで何使ってもいいと思います。ほんとはcoreos使いたかったんですが、Windowsだとうまくマウントできないっぽくて泣きました。

vagrant-hostupdaterプラグインを使用して、Windowsのhostsファイルを書き換えています。Docker環境にIPアドレスでしか繋げないのはちょっと切ないので活用しましょう。nginx-proxyコンテナを使うときなんかにも使います。

これはVagrantの共有ディレクトリでシンボリックリンクを使うための設定です。あんまりちゃんと理解しないまま使ってます。Windows側のコマンド入力も必要なことがあるっぽいです。詳しくは下記記事を参照。

qiita.com

Vagrant環境の初期化用shファイルを呼び出します。privilegedはshファイルを管理者権限で実行したい場合のオプションです。

docker-vagrant_init.sh

見たまんまですが、docker-vagrant_init.shではdockerおよびdocker-composeのインストールを行います。

おわりに

最近WSLがアツいみたいだし、Docker for Windowsの方がいいのかなー。