【问题标题】:Unable to do DNS lookup in azure container instance - windows container无法在 Azure 容器实例中进行 DNS 查找 - Windows 容器
【发布时间】:2019-05-01 08:09:41
【问题描述】:

我正在尝试从我的 Windows 容器连接到 sql 服务器。当我在我的机器或 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()}");

【问题讨论】:

  • 一些问题。你在哪里查找 SQL 服务器和主机,然后你得到错误“没有这样的主机是已知的”?当您在本地和 Azure 容器实例中运行映像时,您会执行哪些步骤?

标签: docker dns azure-container-instances


【解决方案1】:

在我最初的问题的基础上,我提出了两种解决此问题的方法。

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

  2. 如果您遇到非 .netcore 项目,请在容器引导程序上运行 powershell 脚本,强制容器使用公共 DNS,例如 Google (8.8.8.8)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多