Centos 7.9下docker网络不通导致Mysql无法连接
问题现象
应用上线部署时遇到个奇怪的问题,docker内的Mysql无论如何也访问不了。
通过Mysql Client
连接到docker内部的Mysql Server提示错误如下:
2013-Lost connection to MYSQL server at 'reading for initial communication packet',system error:0 "Internal error/check(Not system error)"
排查思路
排查了docker端口映射、防火墙都没问题,结果发现宿主机无法ping通docker容器,也无法通过Mysql Client
连接到docker内部的Mysql Server,说明宿主和docker之间网络直接没打通。
解决方案
网上搜了一番,发现与Linux内核有关系,在某个特定版本(CentOS 7.9.2009 Kernel 3.10.0-327)会出现网络建立失败,升级内核版本后故障消失。