読者です 読者をやめる 読者になる 読者になる

Boot2Dockerの環境設定の自動化

boot2docker docker

Boot2Docker経由でDockerを利用する場合、dockerコマンドにDockerホストの接続先や証明書のパスなどを教えてやるために環境変数を設定する必要があります。
設定すべき内容は「boot2docker shellinit」コマンドで確認できます。

$ boot2docker shellinit
Writing /Users/nobusue/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/nobusue/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/nobusue/.boot2docker/certs/boot2docker-vm/key.pem
    export DOCKER_CERT_PATH=/Users/nobusue/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://192.168.59.103:2376

exportの部分を直接 .bashrc などに書いてもよいのですが、Boot2Dockerをアップグレードしたりすると設定すべき環境変数が変わる場合があります。

面倒なのでこの内容をそのまま読み込むようにしました。
具体的には .bashrc に以下を追加しています。

# Docker
eval $(boot2docker shellinit 2>/dev/null)

今のところこれで大丈夫そうです。
"Writing /Users/nobusue/・・・"が毎回表示されてうっとおしいので、「2>/dev/null」で消しています。(必須ではないです。)

(2014/11/28追記)
上記設定はBoot2Dockerが起動済でないと意味がないので、以下のように修正しました。

# Docker
if [ "`boot2docker status`" = "running" ]; then
  eval $(boot2docker shellinit 2>/dev/null)
fi