我让它正常工作,但现在它停了。我尝试了以下命令,但没有效果:
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也被禁用了
当前回答
我在这里尝试了大部分答案,但唯一有效的是重新创建网络:
$ docker network rm the-network
$ docker network create --driver=bridge the-network
我还需要重新创建使用它的docker容器:
$ sudo docker create --name the-name --network the-network
然后是互联网接入。
其他回答
您可能已经使用dns选项启动了docker—dns 172.x.x.x
我有同样的错误,并从/etc/default/docker删除选项
行:
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 172.x.x.x"
我在这里尝试了大部分答案,但唯一有效的是重新创建网络:
$ docker network rm the-network
$ docker network create --driver=bridge the-network
我还需要重新创建使用它的docker容器:
$ sudo docker create --name the-name --network the-network
然后是互联网接入。
通过以下建议修复:
[…你能试着重置一切吗?
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d
它将迫使docker重新创建网桥并重新执行所有网络规则
https://github.com/dotcloud/docker/issues/866#issuecomment-19218300
似乎界面以某种方式“挂起”。
更新docker的最新版本:
上面的答案可能仍然可以帮你完成工作,但自从这个答案发布以来已经有很长一段时间了,docker现在更加完善了,所以在使用iptables和所有东西之前,一定要先尝试这些。
Sudo service docker restart或者(如果你的Linux发行版没有使用upstart) Sudo 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中也有描述
重启docker的方法不是手动,而是使用service或systemctl命令:
service docker restart
or
systemctl restart docker