我能够找出问题所在。在Ubuntu上,Docker将容器的DNS服务器设置为8.8.8.x的Google服务器。据我了解,由于Ubuntu将/etc/resolv.conf设置为127.0.0.1,因此这是Ubuntu上的解决方法。
这些Google服务器无法从防火墙后面访问,这就是为什么我们无法解析任何URL的原因。
解决方法是告诉Docker使用哪个DNS服务器。此修复取决于您如何安装Docker:
Ubuntu软件包
如果您已安装Ubuntu软件包,请编辑/ etc / default / docker并添加以下行:
DOCKER_OPTS="--dns <your_dns_server_1> --dns <your_dns_server_2>"
您可以在此配置中添加任意数量的DNS服务器。编辑完此文件后,您将要重新启动Docker服务:
sudo service docker restart
二进制文件
如果您已经通过binaries方法安装了Docker(即没有软件包),那么在启动Docker守护程序时就设置了DNS服务器:
sudo docker -d -D --dns <your_dns_server_1> --dns <your_dns_server_2> &



