问题描述
有 IP 地址为 172.24.x.xx/24
的服务器无法 ping 通,原因为 docker 默认网段 172.17.0.0/16
占用了服务器所在网段,导致外部请求无法访问到真实服务器。
解决方案
- 查看路由信息
1ifconfig docker0
2
3docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
4 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
5 ether 02:42:90:e0:c1:a0 txqueuelen 0 (Ethernet)
6 RX packets 0 bytes 0 (0.0 B)
7 RX errors 0 dropped 0 overruns 0 frame 0
8 TX packets 0 bytes 0 (0.0 B)
9 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到,docker0 占用的网段为 172.17.0.1/16
- 修改 docker 默认网段
1# 停止 docker 服务
2systemctl stop docker
3
4# 删除原有网桥
5ip link del docker0 down
6
7# 修改 docker 网段
8vim /etc/docker/daemon.json
9"bip":"192.168.100.1/24"
10
11# 重启 docker 服务
12systemctl restart docker
此时再执行 ifconfig docker0
可以看到 docker 的网段已变更。
参考资料: