Docker 修改Docker0网桥默认网段

/ docker / 没有评论 / 3643浏览

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地址来使集群正常工作起来。

遭遇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