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

案例:

  1. 安装好docker后,docker0地址:192.168.0.1
  2. 创建两个容器a,b后,ip分别为:192.168.0.2,192.168.0.3
  3. 宿主机无法ping通2个容器的ip地址,进入容器后也无法ping通docker0地址, 但容器间能互相ping通(在a内能ping通b,b内能ping通a),且无法ping通外网地址(但默认docker容器内是可以ping通外网的)

分析

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

解决办法

升级centos内核,或直接升级系统解决了。这里写出来,避免其他人再采坑。