两个docker容器(一个mysql,一个tomcat)在同一个bridge(自定义的)网络下,tomcat访问mysql无法访问。
宿主机: CentOS Linux release 8.0.1905 (Core)
Docker Client: 20.10.14
Docker Enginer:19.03.15
两个容器内都能互相ping通对方,在tomcat容器内使用telnet mysql:3306端口提示No route to host。这里验证过数据库容器对外肯定是开放的,宿主机上是可以访问的,但是在tomcat容器内就不可以,关闭防火墙就可以,能确定是防火墙问题,但不知道防火墙问题出在哪里,有没有专家能指导指导,防火墙规则该如何配置。
配合防火墙规则,使tomcat能够访问mysql容器。
从解决问题的角度我知道有docker run -p参数端口映射来解决此文,tomcat容器里面只需要配置宿主机IP即可,但是我想作为tomcat值向外提供端口服务,而其他容器都不对外提供。所以本着追根求源的态度,我想知道探究到这个问题的原因以及这个问题的解决方法。