【问题标题】:How to make Docker Desktop Windows resolve the host name?如何让 Docker Desktop Windows 解析主机名?
【发布时间】:2019-08-17 00:26:26
【问题描述】:

假设,我的机器名为 工作站-mine.company.network,IP 10.11.12.13

我无法从任何 Docker、Edge 版本 2.0.3.0、容器(在后台使用 Kubernetes)解决它,例如:

docker run -it --rm busybox
ping workstation-mine.company.network

失败并显示“错误地址”消息,但是

ping workstation-somebody-else.company.network
ping www.google.com

工作正常,IP 地址已解析。 我也可以 ping 我的 IP 10.11.12.13,尽管响应时间比 ping host.docker.internal 的响应时间要长得多。

使用 nslookup,我可以将公司网络中所有附近的工作站名称解析为 IP,但我的除外:

nslookup workstation-mine.company.network
** server can't find workstation-mine.company.network: NXDOMAIN

nslookup 10.11.12.13
** server can't find 13.12.11.10.in-addr.arpa: NXDOMAIN

docker 安装是在一个相当大的脚本中完成的,我只是使用它,并且不需要使用 `host.docker.internal',因为访问的目标也可能是另一台机器。

有一种解决方法是给我自己的机器一个自定义名称,比如“my-host”,然后将它编辑到 Windows\system32\drivers\etc\hosts 文件中。然后容器中的ping my-host 工作。

顺便说一句,

我不知道它是否相关,但我在 ProgramData\DockerDesktop\Service.txt 日志中不断收到 DNS 错误:

[14:31:31.414][ApiProxy ][Info] time="2019-03-26T14:31:31+01:00" msg="未知 DNS 查询类型 13" [14:31:31.414][ApiProxy][Info] time="2019-03-26T14:31:31+01:00" msg="DNS failure: 1160493135005290919.1659836570884043770.\tIN\t HINFO: 未知查询类型" em>

[15:40:08.358][ApiProxy ][Info] time="2019-03-26T15:40:08+01:00" msg="DNS 失败:docker-desktop.\tIN\t AAAA: errno 9002: DnsQuery: DNS 服务器故障。”

第一个 DNS 错误似乎与来自名称服务器的一些不寻常的、列为已弃用的 HINFO 行类型有关,第二个与 IP v6(AAAA 表示 IP v6)有关。

【问题讨论】:

标签: docker dns nameservers


【解决方案1】:

我刚刚遇到了同样的问题。我可以通过以下方式 ping 8.8.8.8:

docker run mcr.microsoft.com/dotnet/core/sdk:3.0-nanoserver-1803 ping 8.8.8.8

但无法 ping google.com 或任何域。

然后我尝试通过以下方式找到容器使用的虚拟网络:

docker run mcr.microsoft.com/dotnet/core/sdk:3.0-nanoserver-1803 ipconfig /all

然后我发现网络使用了错误的接口,我当时没有连接到我公司的 VPN 设置的错误 DNS。

最后,我在Registry Editor 中找到DNS Suffix 并删除包含该名称的整个文件夹并重新启动整个docker。 DNS 再次工作。

您可以在此处找到网络接口:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

【讨论】:

    【解决方案2】:

    不幸的是,本地主机名解析似乎不适用于最新的 Docker for Windows 版本(目前为止最高 2.1.0.1)

    我找到的唯一可能的解决方案是降级到Docker for Windows 2.0.0.3

    注意:您需要卸载当前安装才能安装 2.0.0.3 版。因此,您将丢失所有数据(容器、图像等)

    Stefan Großmann创建的Github上有一个相关问题:Cannot resolve host name in Docker Desktop Windows #3810

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 2016-03-21
      相关资源
      最近更新 更多