boot2docker の VM の設定を変更する

boot2docker(v1.0.0) の VM は再起動すると手動で設定した内容はクリアされてしまう。スクリプトを以下の場所に置いておくことでブートの最後に実行してくれる。

/var/lib/boot2docker/bootlocal.sh

今回はコンテナに割り当てられる IP を変更したかったので、docker0 を自前で事前に作成しておくようなスクリプトを置いておくことで解決できた。

sudo sh -c '
cat <<EOL > /var/lib/boot2docker/bootlocal.sh
ip link add docker0 type bridge
ip addr add 192.168.17.1/24 dev docker0
ip link set docker0 up
EOL
chmod +x /var/lib/boot2docker/bootlocal.sh
'

docker デーモン起動時に引数を設定したい場合は、/var/lib/boot2docker/profile に EXTRA_ARGS="--dns 192.168.1.2" のように記述しておくと、init.d から起動する際に読み込んでくれる。このことは /etc/init.d/docker を読んで知ったのだけど、FAQ に書いてあったので先にドキュメントを読むようにしたい。