Docker 无法在azure容器实例中执行DNS查找-windows容器

Docker 无法在azure容器实例中执行DNS查找-windows容器,docker,dns,azure-container-instances,Docker,Dns,Azure Container Instances,我正在尝试从windows容器连接到sql server。当我在我的机器上或azure vm上本地启动容器时,一切正常,我可以连接到azure sql server,但当我将容器部署到azure容器实例时,连接失败。sql server防火墙在0.0.0.0到255.255.255.255之间打开 我相信我已经把它缩小到了DNS问题,因为当我试图查找sql server或任何主机时,我会得到一个“不知道这样的主机”。 已知有30秒的启动延迟,但多次重试后仍无法解决 IPHostEntry ipH

我正在尝试从windows容器连接到sql server。当我在我的机器上或azure vm上本地启动容器时,一切正常,我可以连接到azure sql server,但当我将容器部署到azure容器实例时,连接失败。sql server防火墙在0.0.0.0到255.255.255.255之间打开

我相信我已经把它缩小到了DNS问题,因为当我试图查找sql server或任何主机时,我会得到一个“不知道这样的主机”。 已知有30秒的启动延迟,但多次重试后仍无法解决

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

除了我最初的问题之外,我还提出了两种解决这个问题的方法

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

  • 如果您无法使用非.netcore项目,请在容器引导上运行powershell脚本,以强制容器使用公共DNS,如Google(8.8.8.8)


  • 除了我最初的问题之外,我还提出了两种解决这个问题的方法

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

  • 如果您无法使用非.netcore项目,请在容器引导上运行powershell脚本,以强制容器使用公共DNS,如Google(8.8.8.8)


  • 一些问题。在哪里查找SQL server和主机,然后出现错误“不知道这样的主机”?当您在本地和Azure容器实例中运行映像时,您会执行哪些步骤?一些问题。在哪里查找SQL server和主机,然后出现错误“不知道这样的主机”?当您在本地和Azure容器实例中运行映像时,您会执行哪些步骤?
    $nic = Get-NetAdapter
    Set-DnsClientServerAddress -InterfaceIndex $nic.IfIndex -ServerAddresses ('8.8.8.8')