You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动