TL;DR
-
docker0
ネットワークインターフェースが使用する、IPアドレスの範囲を変更したい- 既存ネットワーク範囲と衝突する場合など
-
dockerd
の起動オプションで、bip
を使って変更する
環境
$ uname -a
Linux xxxxx 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ docker -v
Docker version 19.03.5, build 633a0ea838
初期状態
172.17.0.1/16
がdocker0
に割り当てられているので、これを変更します。
$ ip a show dev docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:68:60:98:78 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:68ff:fe60:9878/64 scope link
valid_lft forever preferred_lft forever
daemon.json
を作成して、設定変更する
以下のドキュメントを参考に。
Use bridge networks / Configure the default bridge network
/etc/docker/daemon.json
というファイルを作成し、dockerd
を設定を行います。
{
"bip": "172.22.0.1/16"
}
ブリッジネットワークの場合、bip
オプションで指定すればよいので、今回は172.22.0.1/16
を指定。
dockerd
を再起動。
$ sudo systemctl stop docker.service
$ sudo systemctl start docker.service
docker0
ネットワークインターフェースを確認。
$ ip a show dev docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:68:60:98:78 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.1/16 brd 172.22.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:68ff:fe60:9878/64 scope link
valid_lft forever preferred_lft forever
変更が反映されました、と。