昨天遇到一个问题。
项目的前端后端DB分别发布在docker的三个容器中。前后端的容器公开到外网上了,通过外网IP通信,一路畅通。但是API连接DB是用的内网IP,一直报错No route to host。
开始想错了方向,以为是DB的配置问题,进去查看了好久,明明两个配置文件pg_hba和postgresql都已经修改了公开,但就是连不上。
于是打开DB工具想试一下,看看能不能连,结果能连上!证明不是DB问题。
排除了DB问题以后,应该就是通信问题了,查了资料才知道docker间的网桥工作起来会有可能出现没法通信的情况。
解决办法就是在宿主机的防火墙上公开出DB的端口,然后重启:
firewall-cmd --zone=public --add-port=20000/tcp --permanen
firewall-cmd --reload
大功告成!
网友评论