tabimoba.net

とあるエンジニアの雑記帳

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