Docker 容器內沒法經過 HTTP 訪問外網

現象

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

分析

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

解決

經過重建 docker0 網絡解決問題docker

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

其實最終也沒有肯定問題所在,只是暫時解決了問題。bash

相關文章
相關標籤/搜索