Docker Desktop在Windows和Mac平台出现DNS解析失败问题求助
Docker Desktop在Windows和Mac平台出现DNS解析失败问题求助
我家里用的是BT路由器搭建的简单局域网,里面有三台机器:Windows、Mac和Linux。其中Windows和Mac装的是Docker Desktop 4.23.0,都遇到了同一个DNS解析的问题,但Linux上跑原生dockerd的机器就完全正常。
目前遇到的核心问题是:容器内部的DNS查询完全失败,这直接导致我既没法拉取镜像,也没法构建容器。具体现象如下:
执行
docker pull ubuntu,等待20秒后会报错:Error response from daemon: Get "https://registry-1.docker.io/v2/": proxyconnect tcp: dial tcp: lookup http.docker.internal on 192.168.65.7:53: read udp 192.168.0.1:49442->192.168.65.7:53: i/o timeout用只包含
FROM ubuntu:20.04的Dockerfile执行docker build -t test .,会得到这样的错误输出:$ docker build -t test . [+] Building 10.1s (3/3) FINISHED docker:default => [internal] load build definition from dockerfile 0.0s => => transferring dockerfile: 55B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => ERROR [internal] load metadata for docker.io/library/ubuntu:20.04 10.0s ------ > [internal] load metadata for docker.io/library/ubuntu:20.04: ------ dockerfile:1 -------------------- 1 | >>> FROM ubuntu:20.04 2 | -------------------- ERROR: failed to solve: ubuntu:20.04: failed to do request: Head "https://registry-1.docker.io/v2/library/ubuntu/manifests/20.04": proxyconnect tcp: dial tcp: lookup http.docker.internal on 192.168.65.7:53: read udp 192.168.0.1:47040->192.168.65.7:53: i/o timeout在Windows上基于WSL2运行的Ubuntu容器里,执行
curl google.com会报错:curl: (6) Could not resolve host: google.com(补充一下:Mac上的容器现在居然又能正常工作了,但Windows这边还是完全不行)
我自己尝试过一个临时办法:在Windows的Ubuntu容器里把nameserver 8.8.8.8添加到/etc/resolv.conf里(原来的配置是nameserver 127.0.0.11),这样容器内部的DNS查询能正常工作,但这解决不了拉取镜像和构建容器的问题。
有没有大佬能给点思路或者下一步排查的建议?非常感谢!
备注:内容来源于stack exchange,提问作者Terminologist




