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

相关文章
相关标签/搜索