centos7中docker网络docker0(bridge)与容器间网络不通的坑

admin 2020-7-31 14837

案例:

安装好docker后,docker0地址:172.20.0.1/24

创建两个容器a,b后,ip分别为:172.20.0.2,172.20.0.3

宿主机无法ping通2个容器的ip地址,进入容器后也无法ping通docker0地址, 但容器间能互相ping通(在a内能ping通b,b内能ping通a),且无法ping通外网地址(但默认docker容器内是可以ping通外网的)


处理:

几乎试遍了网上能找到的方法,包括修改虚拟网卡的网段、重新bridge网卡、宿主机中设置IPv4转发等等。

最后,在网上找到这个:

https://www.codenong.com/cs105366176/

各种原因都分析了,甚至classiclink问题也考虑了,最后通过阿里云工程师帮忙日志分析,才发现是docker 加载内核的bridge.ko 驱动异常,导致docker0 网卡无法转发数据包,也就是系统内核的网桥模块bridge.ko 加载失败导致的,一般情况下这种场景的确很少见。


解决办法:

升级centos内核。


列出可用内核:

sudo yum list kernel


升级内核:

sudo yum update kernel -y


重启:

sudo reboot




最新回复 (0)
返回