Docker 如何将DNS条目添加到Windows容器的主机文件?
我在我的主机的IIS中有一个可以通过地址访问的网站。我还有一个windows容器在这个主机上运行,我正试图通过使用“curl”从我的windows容器连接到那个网站http://mysite.local“ 我将把正确的DNS条目添加到容器的hosts文件中。为此,我连接到容器的命令shell并运行以下命令:Docker 如何将DNS条目添加到Windows容器的主机文件?,docker,dns,hosts,docker-desktop,windows-container,Docker,Dns,Hosts,Docker Desktop,Windows Container,我在我的主机的IIS中有一个可以通过地址访问的网站。我还有一个windows容器在这个主机上运行,我正试图通过使用“curl”从我的windows容器连接到那个网站http://mysite.local“ 我将把正确的DNS条目添加到容器的hosts文件中。为此,我连接到容器的命令shell并运行以下命令: echo 192.168.0.144 mysite.local >> c:\windows\system32\drivers\etc 但控制台显示“访问被拒绝” 所以基本上,我
echo 192.168.0.144 mysite.local >> c:\windows\system32\drivers\etc
但控制台显示“访问被拒绝”
所以基本上,我的问题是:
- 如何将DNS条目添加到Windows容器的主机文件
Docker桌面版本2.3.0.4(46911)
,在windows10上有Engine版本19.03.12
我已经使用mcr.microsoft.com/windows/servercore:ltsc2019
作为windows基本映像创建了容器,还尝试了nanoserver:1903
您可以作为管理员获取容器的命令外壳并运行以下命令:
docker exec --user "NT AUTHORITY\SYSTEM" -it yourcontainername cmd
然后,您可以将适当的记录添加到容器的主机文件:
echo X.X.X.X mysite.local >> c:\windows\system32\drivers\etc\hosts
要确保使用的是正确的值而不是X.X.X.X
,请打开主机的主机文件,您将看到一个DNS条目,如X.X.X主机.docker.internal
。从容器的角度来看,这是主机的IP。使用上述命令中的IP将正确的DNS条目添加到容器的主机文件中。要测试结果,您可以使用类型c:\windows\system32\drivers\etc\hosts
查看文件内容,并使用curl mysite.local
从该网站获取内容。您可以以管理员身份获取容器的命令外壳并运行以下命令:
docker exec --user "NT AUTHORITY\SYSTEM" -it yourcontainername cmd
然后,您可以将适当的记录添加到容器的主机文件:
echo X.X.X.X mysite.local >> c:\windows\system32\drivers\etc\hosts
要确保使用的是正确的值而不是X.X.X.X
,请打开主机的主机文件,您将看到一个DNS条目,如X.X.X主机.docker.internal
。从容器的角度来看,这是主机的IP。使用上述命令中的IP将正确的DNS条目添加到容器的主机文件中。要测试结果,您可以使用类型c:\windows\system32\drivers\etc\hosts
查看文件内容,并使用curl mysite从该网站获取内容。local
您可以设置本地DNS服务器(如Linux服务器上的dnsmasq或BIND),或使用云托管DNS服务(如Amazon的Route 53)吗?这比手动复制主机文件条目容易得多。使用本地DNS服务器可能是一种选择,但是,开发环境是Windows 10,它没有内置DNS服务器,我不希望依赖额外的第三方工具。另外,使用真正的云DNS服务器也不是一个选项,因为它只是一个开发环境。我希望添加主机选项能起到作用,但目前显然是针对windows容器。您可以设置本地DNS服务器(如dnsmasq或Linux服务器上的BIND),或使用云托管DNS服务(如Amazon的Route 53)吗?这比手动复制主机文件条目容易得多。使用本地DNS服务器可能是一种选择,但是,开发环境是Windows 10,它没有内置DNS服务器,我不希望依赖额外的第三方工具。另外,使用真正的云DNS服务器也不是一个选项,因为它只是一个开发环境。我希望添加主机选项能起到作用,但目前显然是针对windows容器的。