docker可以跨网络访问吗(docker网段冲突导致主机网络异常处理)

最近公司服务器网络出现了问题,现象就是有台主机不能访问某个网段的机器,无法ping通。原因是在启动docker容器的时候突然断开连接,然后就连接不上了。服务器网段是100.10.x.x,被访问机器是172.17.x.x。

后来琢磨可能是docker网桥导致主机路由表异常,定位了一下,果然如此,那么解决方法就很简单了。大概解释一下,docker安装以后会在主机上创建一个虚拟网卡-docker0,而我们启动的容器host网络以外,其他的都是通过docker0这个虚拟网卡经过物理网卡与外部通信的。这个虚拟网卡本身会有一个网段,一般是172.17.x.x,所以问题就明确了,因为docker0占用了这个网段,导致主机无法访问真是的网段机器。只要把docker0绑定的网段修改一下,就可以了。解决步骤如下:

查看路由信息查看主机路由信息

route -n

可以看到docker0占用的网段

docker可以跨网络访问吗(docker网段冲突导致主机网络异常处理)(1)

也可以直接查看docker0占用的网段

ifconfig docker0

docker可以跨网络访问吗(docker网段冲突导致主机网络异常处理)(2)

修改docker0默认网段1. 停止docker服务

systemctl stop docker

2. 删除原有网桥

ip link del docker0 down

3. 修改docker网段

vim /etc/docker/daemon.json { "bip":"192.168.100.1/24" }

4. 重启docker服务

systemctl restart docker

5. 通过ifconfig 查看docker网段是否已经变更

ifconfig docker0

参考文档

https://cloud.tencent.com/developer/article/1852577https://blog.csdn.net/penetrate/article/details/82458166https://blog.csdn.net/q95548854/article/details/121097186

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页