我让它正常工作,但现在它停了。我尝试了以下命令,但没有效果:
Docker运行-dns 8.8.8.8 base ping google.com
Docker运行base ping google.com
Sysctl -w net.ipv4。Ip_forward =1 -在主机和容器上
我得到的是未知主机google.com。Docker 0.7.0版本
什么好主意吗?
P.S. ufw也被禁用了
我让它正常工作,但现在它停了。我尝试了以下命令,但没有效果:
Docker运行-dns 8.8.8.8 base ping google.com
Docker运行base ping google.com
Sysctl -w net.ipv4。Ip_forward =1 -在主机和容器上
我得到的是未知主机google.com。Docker 0.7.0版本
什么好主意吗?
P.S. ufw也被禁用了
当前回答
当我尝试在Ubuntu上使用Docker-Compose建立一个项目时,也遇到了这样的问题。
Docker根本无法访问互联网,当我试图ping任何IP地址或nslookup一些URL时,它总是失败。
我尝试了上面描述的所有可能的DNS解析解决方案,但都无济于事。
我花了一整天的时间试图找出到底发生了什么,最后发现所有问题的原因都是防病毒软件,尤其是它的防火墙,出于某种原因阻止了Docker获取IP地址和端口。
当我禁用它时,一切都很好。
所以,如果你安装了防病毒软件,但没有任何帮助解决这个问题-问题可能是防病毒软件的防火墙。
其他回答
如果你在OSX上,你可能需要在安装Docker后重新启动你的机器。这有时是一个问题。
对我来说,我在使用podman时遇到了与redhat/centos/fedora用户相同的问题
firewall-cmd --zone=public --add-masquerade
firewall-cmd --permanent --zone=public --add-masquerade
对于更多的防火墙和podman(或docker) -容器中没有互联网,无法解析主机
重启docker的方法不是手动,而是使用service或systemctl命令:
service docker restart
or
systemctl restart docker
最近几天我也遇到了类似的问题。对我来说,原因是systemd、docker和我的托管提供商的组合。我正在运行最新的CentOS(7.7.1908)。
我的主机提供程序自动为systemd-network生成配置文件。从CentOS 7的当前版本systemd 219开始,systemd-network控制了与网络相关的sysctl参数。Docker似乎与这个版本不兼容,并且每次容器启动时都会重置IP-Forwarding标志。
我的解决方案是在提供者生成的配置文件的[Network]部分中添加IPForward=true。这个文件可能在几个地方,最有可能在/etc/systemd/network中。
这个过程在官方docker文档https://docs.docker.com/v17.09/engine/installation/linux/linux-postinstall/#ip-forwarding-problems中也有描述
对于Ubuntu 19.04使用openconnect 8.3进行VPN,我必须将/etc/resolve.conf符号链接到systemd中的文件(与answerby wisbucky相反)
执行ln -sf /etc/resolv.conf /run/systemd/resolve/resolv.conf
调试步骤
连接到公司VPN 在/etc/resolv.conf或/run/systemd/resolve/resolv.conf中查找正确的VPN设置 无论哪个有正确的DNS设置,我们都会将其符号链接到另一个文件 (提示:在赋值的左边放置一个设置正确的)
Docker版本:Docker版本19.03.0-rc2,构建f97efcc