我让它正常工作,但现在它停止了。我尝试了以下命令,但没有用:
docker运行-dns8.8.8.8基本pinggoogle.com
docker运行基本pinggoogle.com
sysctl-w网络。ipv4.ip_forward=1
-在主机和容器上
我得到的是未知主机google。com。Docker版本0.7.0
有什么想法吗?
P、 S.ufw也被禁用
按照以下建议修复:
[...]你能试着重置一切吗?
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或(如果您在不使用upstart的linux发行版中)sudo systemctl restart docker
首先要检查的是运行cat/etc/resolv。docker容器中的conf。如果它有无效的DNS服务器,例如nameserver 127.0。x、 x,则容器将无法将域名解析为ip地址,因此ping google。com将失败。
第二件要检查的事情是在主机上运行cat /etc/resolv.conf
。Docker基本上在每次启动容器时都会将主机的/etc/resolv.conf
复制到容器中。所以如果主机的/etc/resolv.conf
是错误的,那么docker容器也是如此。
如果您发现主机的/etc/resolv。conf
错误,则有2个选项:
>
在daemon.json.中对DNS服务器进行硬编码这很容易,但如果您希望DNS服务器发生变化,这并不理想。
修复主机的/etc/resolv.conf
。这有点棘手,但它是动态生成的,并且您没有对DNS服务器进行硬编码。
1.在docker守护进程中硬编码DNS服务器。json
>
编辑etc/docker/daemon。json
{
"dns": ["10.1.2.3", "8.8.8.8"]
}
重启docker守护程序以使这些更改生效:sudo systemctl restart docker
现在,当您运行/启动容器时,docker将填充/etc/resolv。conf
,具有来自守护进程的值。json。
2、修复主机的/etc/resolv。形态
A. Ubuntu 16.04及更早版本
>
注释掉
/etc/NetworkManager/NetworkManager.conf
中的行dns=dnsmasq
(带有#
)
重启NetworkManager重新生成
/etc/resolv.conf
:sudo systemctl重启network-Manager
在主机上验证:
cat/etc/resolv。形态
B、 Ubuntu 18.04及更高版本
>
Ubuntu 18.04更改为使用系统解析的
生成/etc/resolv.conf
。现在默认情况下,它使用本地DNS缓存127.0.0.53。这在容器内不起作用,因此Docker将默认使用Google的8.8.8.8DNS服务器,这可能会为防火墙后面的人中断。
/etc/resolv。conf实际上是一个符号链接(
ls-l/etc/resolv.conf),它指向run/systemd/resolv/stub-resolv。在Ubuntu 18.04中默认为conf(127.0.0.53)。
只需将符号链接更改为指向
/run/systemd/解析/resolv.conf
,其中列出了真正的DNS服务器:sudo ln-sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
在主机上验证:
cat/etc/resolv。形态
现在,您应该有一个有效的
/etc/resolv。在主机上配置,以便docker复制到容器中。
问题内容: 我的工作正常,但现在停止了。我尝试了以下命令,但无济于事: -在主机和容器上 我所得到的是。Docker版本0.7.0 有任何想法吗? PS也禁用 问题答案: 遵循以下建议进行修复: […]您可以尝试重设所有内容吗? 它将迫使docker重新创建网桥并重新初始化所有网络规则 https://github.com/dotcloud/docker/issues/866#issuecomme
问题内容: 我的智慧到此为止,我梳理了每个Google搜索结果,没有任何帮助。 我完全无法使Docker容器访问互联网。IP转发已启用(),ufw已关闭,我尝试添加这些标志。我在Google上找到的所有可能的解决方案都失败了。 有人知道如何提供帮助吗? 尝试按照此处的建议重设所有内容,通过告诉我即使它没有运行,也可能破坏整个事情。 问题答案: 解决。我按照以下说明进行操作:在行中注释掉
容器互联 如果你之前有 Docker 使用经验,你可能已经习惯了使用 --link 参数来使容器互联。 随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器,而不是使用 --link 参数。 新建网络 下面先创建一个新的 Docker 网络。 $ docker network create -d bridge my-net -d 参数指定 Docker
一切都很好,当它是在Ubuntu-18.04.谢谢:)
问题内容: 我有一个在AWS EC2实例上运行的kubernetes集群,并编织为networking(cni)。我已经禁用了docker网络(ipmask和iptables),因为它是通过weave管理的(以避免网络冲突)。 我已经将我的Jenkins作为K8s pod部署在此集群上,并且该jenkins使用jenkins kubernetes插件基于我定义的pod和容器模板生成了动态的slav