Docker 容器內無法通過 HTTP 訪問外網


現象

  • 內/外網 IP 和 域名 可以 ping 通
  • 容器內無法訪問宿主機所在內網及外網的 Web 服務(404)
  • 通過 curl 查看返回頭信息感覺是所有 Web 請求被中轉到一個固定的 Nginx 服務器
  • 所有容器(包括新創建的)均出現以上問題

分析

  • 通過 docker run --net host 創建的容器不存在上述的問題
  • docker run 默認使用 bridge 橋接網絡,初步判斷是 bridge 設置問題
  • 通過 自定義網橋 也未解決問題
  • 最終懷疑是宿主機上的橋接網卡 docker0 的問題

解決

通過重建 docker0 網絡解決問題

$ sudo service docker stop
$ sudo pkill docker
$ sudo iptables -t nat -F
$ sudo ifconfig docker0 down
$ sudo brctl delbr docker0
$ sudo service docker start

其暫時解決了問題。


免責聲明!

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



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