docker 容器通過橋接方式綁定到宿主機無法訪問另外一個docker容器


背景

  公司最近前后端項目發布方式轉型到容器化方式,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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM