如何使Docker Desktop Windows解析主机名?

Eri*_*art 7 dns nameservers docker

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

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

docker run -it --rm busybox
ping workstation-mine.company.network
Run Code Online (Sandbox Code Playgroud)

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

ping workstation-somebody-else.company.network
ping www.google.com
Run Code Online (Sandbox Code Playgroud)

工作正常,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
Run Code Online (Sandbox Code Playgroud)

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失败:1160493135005290919.1659836570884043770。\ tIN \ t HINFO:未知查询类型”

[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)。

Fil*_*kov 0

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

\n\n

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

\n\n

请注意:您需要卸载当前安装才能安装 2.0.0.3 版本。所以你会丢失所有数据(容器、图像等)

\n\n

Github 上有一个由Stefan Gro\xc3\x9fmann创建的相关问题:无法解析 Docker Desktop Windows 中的主机名 #3810

\n