记内网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 网卡集群冲突的情况,也是同样的修改网段的方式解决,详见 )