docker容器端口映射宿主機無法訪問解決過程


今天在學習Docker的時候,啟動容器映射宿主機80端口訪問連接被拒,問題現象如下

 

 

 

解決思路如下:
1.查看宿主機80端口是否啟動;
2.查看selinux狀態是否為permissive或者disabled;
3.查看firewall運行狀態;
4.查看iptables規則是否允許80端口訪問。

經過排查,發現容器80端口已成功映射到宿主機80端口,firewall與selinux均已關閉,查看iptables PREROUTING與POSTROUTING鏈缺少轉發規則。
比如實現過程如下:

    首先是確定你的容器ip地址,比如我這里就是172.17.0.2 ,宿主機ip地址是192.168.64.100,然后加兩個規則
    iptables -t nat -A PREROUTING -m tcp -p tcp --dport 80 -j DNAT --to-destination 172.17.0.2:80
    iptables -t nat -A POSTROUTING -m tcp -p tcp --dport 80 -d 172.17.0.2 -j SNAT --to-source 192.168.64.100

再次查看iptables規則,發現規則已添加成功

 

測試結果

 


免責聲明!

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



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