Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker pull无法在127.0.1.1:53上查找index.Docker.io(无法解组DNS消息)_Dns_Docker_Dockerhub - Fatal编程技术网

Docker pull无法在127.0.1.1:53上查找index.Docker.io(无法解组DNS消息)

Docker pull无法在127.0.1.1:53上查找index.Docker.io(无法解组DNS消息),dns,docker,dockerhub,Dns,Docker,Dockerhub,由于某种原因,我无法让Docker与Dockerhub沟通搜索和拉命令由于某些DNS相关原因失败。例如: $ docker pull redis Pulling repository redis Get https://index.docker.io/v1/repositories/library/redis/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: cannot unmarshal DNS message 我的网络连接

由于某种原因,我无法让Docker与Dockerhub沟通<代码>搜索和
命令由于某些DNS相关原因失败。例如:

$ docker pull redis
Pulling repository redis
Get https://index.docker.io/v1/repositories/library/redis/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: cannot unmarshal DNS message
我的网络连接很好。我可以ping
127.0.1.1
。这是本地主机地址吗?是否有某种特定于Dockerhub的DNS服务正在运行,可能会在我的机器上被破坏?我的网络似乎没有其他问题

我曾尝试将我的网络连接配置为使用谷歌的DNS(8.8.8.8),但没有任何区别

更新

奇怪的是,我不能ping index.docker.io,但如果我尝试在浏览器中导航,我会被重定向到hub.docker.com

更新


我现在可以确认,这只发生在酒店的一个局域网上。我不知道他们在做什么,也不知道为什么它只会影响Docker,而不会影响Git、Bittorrent或任何其他连接工具。

这个问题有点老了,但因为它仍然没有答案,我碰巧遇到了它,所以它就来了

您入住的酒店的本地网络可能与Docker创建的虚拟网络存在网络地址冲突。我在一家公司的网络上发布了同样的消息

最简单(但没有很好的文档记录)的修复方法是强制Docker使用'--bip'参数为虚拟lan使用任意网络地址。在Linux中,这通常很容易通过在/etc下编辑Docker配置来实现,但在Mac上(以防有人无意中发现),要找到要更改的文件尤其困难。如果这是你的情况,请仔细阅读

基本上,您需要找到一个在所连接的网络上未使用的网段。默认情况下,Docker将尝试这样做:它将使用第一个不会与任何网络接口冲突的专用CIDR。但是,如果您在一个恰好通过另一个专用网段路由的专用LAN网段上,Docker看不到这一点,并可能最终创建一个具有冲突CIDR的本地网络,从而阻止数据包路由出该网段

举例说明:

您的IP地址可以是192.168.10.2,网络掩码为/24。此网络可能在192.168.10.1/24上有一个默认网关,但该网关将您路由到另一个地址为172.17.1.1的路由器


Docker会注意到192.168.10.0/24正在使用,并创建一个地址位于172.16.0.0/16的虚拟网络-因此您的容器将尝试在本地路由该CIDR下的所有地址,并且永远不会到达172.17.1.1外部路由器。在这种情况下,您需要将--bip更改为不同的值,例如10.0.0.1/16。这将允许正确路由数据包。

您有internet连接的代理吗?我在8.8.8.8使用Google的DNS,但我已经尝试禁用它。我在一家大酒店,如果他们对他们的流量做了奇怪的事情,我不会感到惊讶。你是直接使用Linux主机进行docker会话,还是使用带有Windows或Mac的Linux虚拟机?是的,这是Linux上没有虚拟机的docker。这里也一样,这方面有任何更新或解决方法吗?