koukiblog

たぶんweb系の話題

docker toolboxで作成したdocker0のアドレス帯の変更

デフォルトでは 172.17.0.0/16 が使用されているが、社内ネットワークの都合でこれを変更したかったのでその方法です。

docker toolboxを利用する場合、docker-machineを利用して、boot2dockerのVMが起動していると思います。

docker-machine ssh

でdocker daemonが起動しているサーバにログインして以下の作業を行います。

まずdockerを停止

docker stop

既存のbridgeを削除します。

ifconfig docker0

で、docker0インタフェースに172.17.0.0/16が設定されていることがわかります。
この設定を残したまま、dockerの起動時オプションに別にアドレス帯を指定してもエラーになってしまうので、まず削除します。

ip link del docker0 

で削除。

あとはdocker daemonをbipオプションを渡して起動する。

あまりよい方法ではないですが、
boot2docker/docker at master · boot2docker/boot2docker · GitHub

    /usr/local/bin/docker daemon -D -g "$DOCKER_DIR" -H unix:// $DOCKER_HOST $EXTRA_ARGS >> "$DOCKER_LOGFILE" 2>&1 &

    /usr/local/bin/docker daemon -D --bip=192.168.42.1/24 -g "$DOCKER_DIR" -H unix:// $DOCKER_HOST $EXTRA_ARGS >> "$DOCKER_LOGFILE" 2>&1 &

として、dockerを起動すると、 192.168.42.1/24 が適用されます。

ifconfig docker0

で結果が確認可能

参考:
Dockerのネットワークの基礎 | SOTA