Dockerのdocker0インターフェースのIPアドレス(範囲)を変更する方法
Dockerを起動すると、docker0というbridgeインターフェースが生成されますが、このインターフェースにデフォルトで割り当てられるIPアドレスは172.17.42.1/16です(CentOS7の場合)。また、各コンテナには172.17.0.2/16でIPアドレスが割り当てられますが、docker0インターフェースのIPアドレスを最初から設定しておくことで、任意のdocker0インターフェースおよびDockerコンテナのIPアドレス(範囲)を割り当てることが可能です。
設定手順
※以下はCentOS7で設定した場合の手順となります。
1.以下のファイルを作成し、任意のIPアドレスをdocker0インターフェースに設定します。
/etc/sysconfig/network-scripts/ifcfg-docker0
DEVICE="docker0" TYPE="bridge" ONBOOT="yes" NM_CONTROLLED="no" BOOTPROTO="static" IPADDR=172.100.42.1 NETMASK=255.255.0.0
2.dockerを停止します。
service docker stop
3.networkをrestartします。
service network restart
4.networkをrestartします。
service network restart
5.dockerを起動します。
service docker start
変更後のIPアドレス
Dockerホスト
4: docker0:mtu 1500 qdisc noqueue state DOWN link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 172.100.42.1/16 brd 172.100.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link valid_lft forever preferred_lft forever
Dockerコンテナ(ゲスト)
5: eth0:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 172.100.0.2/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::xxxx:xxxx:xxxx:xxx/64 scope link valid_lft forever preferred_lft forever