Dockerを起動すると接続できなくなる場合の対応方法(docker0ブリッジの削除と再設定)
社内のネットワーク設定とdockerのデフォルトブリッジ設定が衝突しているせいで、毎回設定し忘れてハマるのでメモ。
そしてDocker-CEになる前の設定方法を見ていてハマったのでメモ。
そもそもの原因
操作しているPCが172.17.x.x
のネットワークに属している場合に、dockerでデフォルトで設定される仮想ブリッジネットワークが172.17.0.1/16
なので衝突してしまいdockerホストに接続できなくなってしまう。
対処方法
docker0
仮想ブリッジを削除して、手動設定で再作成する。
環境
- CentOS 7
- Docker-CE 19.03
- 開発PCがのIPアドレスが
172.17.x.x
- 設定変更用の
172.17.0.0/16
以外のPC
手順とコマンド
CentOSだったのでrootで操作。Ubuntuの場合は適宜sudoしてください。
衝突の確認
# ip addr
...
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:f7:ae:5c:3e 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
# nmcli
...
docker0: 接続済み to docker0
"docker0"
bridge, 02:42:F7:AE:5C:3E, sw, mtu 1500
inet4 172.17.0.1/16
route4 172.17.0.0/16
確かに172.17.0.1/16
が使われていることを確認
dockerの停止
# systemctl stop docker
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead) since 火 2019-07-23 16:55:20 JST; 19s ago
Docs: https://docs.docker.com
Process: 58478 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=0/SUCCESS)
Main PID: 58478 (code=exited, status=0/SUCCESS)
...
ブリッジの停止と削除
# ip link set dev docker0 down # 停止
# nmcli
...
docker0: 管理無し
"docker0"
bridge, 02:42:F7:AE:5C:3E, sw, mtu 1500
...
#
# ip link delete docker0 # 削除
# nmcli
...
(docker0が表示されなくなる)
...
docker0仮想ブリッジのIPを変更
/etc/docker/daemon.json
として以下内容のファイルを配置する。
{
"bip": "192.168.1.1/16"
}
ここでは192.168.1.1
にしているが、クラスC192.168.x.x
も使われている可能性があるので、10.0.x.x
とか適宜変更(DNSサーバーとぶつかって名前解決できなくなった……orz)。
参考: Customize the docker0 bridge
※/etc/sysconfig/docker
や/etc/default/docker
や/etc/systemd/system/docker.service
などを利用した方法はDocker-CEになる以前の1.x
系の設定方法なので使えません。
dockerを起動
# systemctl start docker
# nmcli
...
docker0: 接続済み to docker0
"docker0"
bridge, 02:42:38:75:80:FD, sw, mtu 1500
inet4 192.168.1.1/16
route4 192.168.0.0/16
これで172.17.x.x/16
ネットワーク上のPCからでも接続できるようになる。
Author And Source
この問題について(Dockerを起動すると接続できなくなる場合の対応方法(docker0ブリッジの削除と再設定)), 我々は、より多くの情報をここで見つけました https://qiita.com/moomooya/items/e4084d57a5c2028a2975著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .