解决因docker网络导致的网络问题,无法ping通局域网ip
背景
在我的办公室网络环境中,我有一个 Windows 10 宿主机,上面安装了 VMware,并在 VMware 中运行了一个 CentOS 7 虚拟机。虽然宿主机和 CentOS 7 虚拟机都可以正常上网并 ping 通外部地址,但 CentOS 7 无法 ping 通宿主机。这让我非常困惑,并最初怀疑可能是公司的网管对我的 MAC 地址进行了某种限制。
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.22.128.1 0.0.0.0 UG 100 0 0 ens33
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-6b8659f8f886
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-89bc77a42b8a
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-b4e656893ece
172.22.128.0 0.0.0.0 255.255.240.0 U 100 0 0 ens33
172.26.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-5b7ab2df8a43
虚拟机上有多个 Docker 网络,其中一个网络(br-b4e656893ece)与宿主机的网络冲突。
这意味着, 尝试 ping 宿主机时,数据包可能被发送到了 Docker 网络,而不是真正的物理网络。
这是最关键的问题所在