记内网linux服务器安装docker后无法ping通172.17网段机器问题及其解决方法
遇到的问题
内网做项目集成,范围中有通过docker容器化部署的应用,所以需要安装docker基础环境。
按照官方文档安装后docker后,发现机器无法ping通内网 172.17 网段的时间同步服务器。
问题的排查
1、通过 arp -a 命令查看本机的arp缓冲区内容
发现ping 172.17网段机器的请求用的是docker0的网卡(本文截图均为命令演示,非真实问题截图)
2、通过 ip route 命令查看核心路由表
发现docker0网卡使用网段为 172.17.0.0/24 网段;所以当机器 ping 172.17 网段服务器时会ping至docker映射网段中,导致实际机器无法连接
问题的解决
把docker0的网段修改为用不到的网段即可
具体操作:
1、关闭docker服务(用到的docker命令详见)
(a)查看所有容器 docker ps -a
(b)关闭启动的容器 docker stop <容器 ID>
(c)查找dockerd进程 ps -ef | grep dockerd
(d)杀掉dockerd进程 kill -9
2、删除原有IP配置
(a)查看核心路由表 ip route
(b)删除docker0 ip及网关设备 ip link set dev docker0 down
3、修改docker配置文件 /etc/docker/daemon.json中的bip配置
修改为用不到的网段,如 192.168 网段
{
"bip":"192.168.0.1/24"
}
4、重启docker服务 dockerd &
5、再次检查核心路由表 ip route
6、ping 172.17网段服务器检查
查找资料时发现还有另外一种 docker_gwbridge 网卡集群冲突的情况,也是同样的修改网段的方式解决,详见 )