背景
公司最近前后端項目發布方式轉型到容器化方式,docker的端口映射其實是通過iptables或者firewalld進行轉發訪問,而公司本身針對網絡進行了策略訪問,所以再發布的過程中出現了容器內部訪問80端口可以,其他端口均提示“NO ROUTE TO HOST“。而查閱了baidu的相關資料,基本沒有針對該問題具有比較好的解決方案
解決思路
docker container的橋接模式是通過內部 網絡地址172.17.*.*,橋接到外部的docker0 進行到外網通訊的。查看橋接的內部Container 可以通過 docker network inspect bridge查看。
那么也就是說我們需要在主機的網絡訪問策略中增加外部的端口訪問權限。而本身橋接他就只是進行了網絡的轉發,並未在路由規則中添加對應的訪問。
解決方案
方式1.如果僅僅是開放某些端口訪問(針對8765端口開放),可以通過 如下規則,(如果是firewalld ,寫法上有區別)
ACCEPT tcp -- 172.17.0.0/16 0.0.0.0/0 tcp dpt:8765
方式2.如果是針對docker設置的端口進行全部開放,則在規則的上方增加
-A INPUT -i docker0 -j ACCEPT
轉載請注明出處: https://www.cnblogs.com/dyft/articles/10058840.html