无法在Azure容器实例中执行DNS查找-Windows Container

时间:2019-05-01 08:09:41

标签: docker dns azure-container-instances

我正在尝试从Windows容器连接到SQL Server。当我在计算机或azure vm上本地启动容器时,一切正常,我可以连接到azure sql服务器,但是当我将容器部署到azure容器实例时,连接失败。 SQL Server防火墙已打开0.0.0.0至255.255.255.255。

我认为我已将其范围缩小到DNS问题,因为当我尝试查找sql​​服务器或任何主机时,都会收到“未知此类主机”的信息。 已知有30秒的启动延迟,但在多次重试后仍然无法解决。

IPHostEntry ipHostInfo = Dns.GetHostEntry("mysqlserver.database.windows.net");  
IPAddress ipAddress = ipHostInfo.AddressList[0];  
Console.WriteLine($"Ipaddress {ipAddress.MapToIPv4()}");

1 个答案:

答案 0 :(得分:1)

在我最初提出的问题之外,我提出了两个解决方案。

  1. 如果您正在使用.netcore项目,则将构建目标设置为linux并部署到linux容器/环境。这样,DNS查找便可以正常工作。

  2. 如果您坚持使用非.netcore项目,请在容器引导程序上运行Powershell脚本,以强制容器使用Google(8.8.8.8)之类的公共DNS。

$nic = Get-NetAdapter
Set-DnsClientServerAddress -InterfaceIndex $nic.IfIndex -ServerAddresses ('8.8.8.8')