Docker Windows 超时问题

8
我正在尝试在Windows 10上使用dockerdocker-compose配置环境,但我无法从docker注册表中拉取镜像。
每次我运行docker-compose up -d时,都会出现以下错误:
Pulling queue (redis:)...
ERROR: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.65.1:53: read udp 192.168.65.3:36785->192.168.65.1:53: i/o timeout

我在网上找了一些资料,有些人建议将DNS服务器设置为固定的地址:8.8.8.8。我按照这个方法做了,但是问题还是存在。 更新 根据 @kaki 的建议,我查看了我的 hosts 文件,发现其中有几个条目与 Docker 相关:
100.114.69.30 host.docker.internal
100.114.69.30 gateway.docker.internal
 host.docker.internal
 gateway.docker.internal
 192.168.1.103 host.docker.internal
 192.168.1.103 gateway.docker.internal
# Added by Docker Desktop
 192.168.0.11 host.docker.internal
 192.168.0.11 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section

我删除了所有的内容,只留下这些:
100.114.69.30 host.docker.internal
100.114.69.30 gateway.docker.internal
127.0.0.1 kubernetes.docker.internal
# End of section

然后事情开始正常运作。


你的网络中有代理服务器吗? - timur
不,我直接连接到互联网。 - Felipe
我只有你在hosts文件中留下的那三个条目。我删除了所有与docker相关的条目,问题得到了解决。 - undefined
2个回答

5
由于某些原因,您的网络适配器认为该域名可以在您的局域网中找到。为了解决此问题,建议检查您的C:\Windows\System32\drivers\etc\hosts文件是否被更改为此值(计算机在查询DNS服务器之前会检查主机文件)。 如果这个方法不能解决问题,建议在企业环境中工作时向网络管理员咨询此问题,否则,如果是私人网络,请检查路由器设置。

1
嗨,我检查了我的hosts文件,发现有几个关于docker的条目(我不知道它们是从哪里来的,可能是从安装中来的)。我已经编辑过了,现在它可以正常工作了。 - Felipe
2
我已经更新了我的问题,并附上了“hosts”文件的内容。 - Felipe
经过多天的寻找解决方案并测试论坛上建议的许多解决方法,这真的是我的最终解决方案。现在它正在运行。 - Muka
这个解决方案让我免于疯狂。我已经寻找了几天的解决方法。谢谢你。 - chaitanyasingu

0

我也遇到了同样的问题。我尝试从主机文件中删除以下行:

Added by Docker Desktop

100.114.69.30 host.docker.internal
100.114.69.30 gateway.docker.internal
127.0.0.1 kubernetes.docker.internal

End of section

但是在PowerShell中输入命令行 docker login 时仍然出现相同的问题。然后我使用Docker桌面故障排除选项清理数据并重新启动Docker,它就可以工作了。 enter image description here

以下是PowerShell脚本:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接