Linux 以外で Docker を使うには、Linux のホストマシンを VM で用意する必要があります。もっともメジャーなのは Boot2Docker でしょうが、個人的には Docker Machine を使うのがおすすめです。まだベータ版ですが、基本的な機能は特に問題なく使えています。
Docker Machine は複数のホスト VM を切り替えることができるのが1つの利点ですが、これにより逆に不便になってしまったことがあります。 Boot2Docker を使う場合、ホスト VM 起動後
1 | $ boot2docker shellinit |
により生成される環境変数を設定するために、 .bashrc
や .zshrc
などに
1 | eval "$(boot2docker shellinit)" |
と書いておけばいいのですが、 Docker Machine の場合はホストを複数作れるために、上記のように一筋縄ではいきません。
Docker Machine で同じように環境変数を設定する場合、以下のようにホスト VM の名前の指定が必要です。たとえば dev
というホスト VM を作った場合、
1 | $ docker-machine env dev |
で環境変数が取得できます。このホスト VM 名は存在し、かつ動いているものでなければなりません。
いろいろ模索と妥協をした結果、 docker-machine ls
コマンドと組み合わせることにより、現状動いているホスト VM を1つ取り出して、その環境変数を設定するシェルスクリプトを .zshrc
に書くことにしました。
.zshrc
1 | # check if `docker-machine` command exists |
IP アドレスだけを使いたいときもあるので、同時に DOCKER_IP
という変数も設定しています。
これでちょっとだけ手間が省けます。