昨天遇到一個問題朝巫。
項目的前端后端DB分別發(fā)布在docker的三個容器中坠陈。前后端的容器公開到外網(wǎng)上了,通過外網(wǎng)IP通信剩岳,一路暢通贞滨。但是API連接DB是用的內(nèi)網(wǎng)IP,一直報錯No route to host拍棕。
開始想錯了方向晓铆,以為是DB的配置問題,進去查看了好久绰播,明明兩個配置文件pg_hba和postgresql都已經(jīng)修改了公開骄噪,但就是連不上。
于是打開DB工具想試一下幅垮,看看能不能連腰池,結(jié)果能連上!證明不是DB問題忙芒。
排除了DB問題以后示弓,應(yīng)該就是通信問題了,查了資料才知道docker間的網(wǎng)橋工作起來會有可能出現(xiàn)沒法通信的情況呵萨。
解決辦法就是在宿主機的防火墻上公開出DB的端口奏属,然后重啟:
firewall-cmd --zone=public --add-port=20000/tcp --permanen
firewall-cmd --reload
大功告成!