📚 开源资源分享——颜佐光的个人书架
✉️ 联系站长
书架 / docker / 网络

Docker 修改Docker0网桥默认网段

2019-11-26 14:31 · 约 1,679 字 · 浏览 4,242 次 · 更新 2020-05-16 11:35网络

Docker 修改Docker0网桥默认网段

我们在局域网中使用Docker,最常遇到的一个困惑,就是有时候跨网段结果出现网络不通。原因是因为Docker默认生成的网关和我们的局域网网段有时候是冲突的,比如在172.16网段的机器上部署Docker,结果生成的docker0网桥是172.17网段,那么就和真实环境中使用该网段的机器冲突了(即ping不通172.17网段的机器)。为了避免冲突,首先想到的是改网关
```
[root@gateway ~]# ifconfig
docker0: flags=4163 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
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
```

← 返回《docker》目录书架 →