现象
- 内/外网 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
其实最终也没有确定问题所在,只是暂时解决了问题。