Docker 修改Docker0网桥默认网段
我们在局域网中使用Docker,最常遇到的一个困惑,就是有时候跨网段结果出现网络不通。原因是因为Docker默认生成的网关和我们的局域网网段有时候是冲突的,比如在172.16网段的机器上部署Docker,结果生成的docker0网桥是172.17网段,那么就和真实环境中使用该网段的机器冲突了(即ping不通172.17网段的机器)。为了避免冲突,首先想到的是改网关
[root@gateway ~]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:65ff:fef9:1ba1 prefixlen 64 scopeid 0x20<link>
ether 02:42:65:f9:1b:a1 txqueuelen 0 (Ethernet)
RX packets 63 bytes 3472 (3.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 42 bytes 2512 (2.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
默认172.17 网段 可以用编辑/etc/docker/daemon.json文件,添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ]
{"bip":"192.168.0.1/16"}
重启 docker 服务
service docker restart
查看修改后的 docker0 网桥信息 ifconfig,此时已修改
修改docker bip项重启后,docker0的ip仍不变
现象: 由于办公室搬迁,机房中的测试服务器有段时间不用,关机了。起来后,flannel 的IP段变了,遂想通过修改docker0的IP地址来使集群正常工作起来。
-
但是,无论修改/etc/default/docker中的,DOCKER_OPTS="--bip=X.X.X.X24 "后重启docker,还是修改/etc/docker/daemon.json.中的"bip": "X.X.X.X24",后重启docker,都不见docker0的IP更新,
-
即使修改以上任一项之后,再用ifconfig docker0 x.x.x.x netmask 255.255.255.0修改docker0, 一旦重启docker, docker0又重新恢复到以前的IP
遭遇docker 版本: 18.03.1-ce ubuntu 版本:Ubuntu 14.04.5 LTS
**解决思路:**以前有过升级docker的经验,也遭遇过类似的网络问题,所以想到可以直接把这个网桥干掉,重建网桥
操作如下命令使问题解决,:
$ sudo service docker stop
$ sudo ip link set dev docker0 down
$ sudo brctl delbr docker0
$ sudo service docker restart
容器之间互相访问
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/05/16 03:35