Время ожидания операции истекло -> Не удается разрешить имя в контейнере Windows

#docker #networking #iis-8 #docker-for-windows #windows-container

#docker #сеть #iis-8 #docker-для-Windows #windows-контейнер

Вопрос:

У меня запущен контейнер Windows, но в нем нет исходящего избытка, в моем dockerfile есть базовый образ

 FROM microsoft/aspnet:3.5-windowsservercore-10.0.14393.1715
 //Setting IIS for my application
 Expose 443
  

Я создаю контейнер, используя строку ниже

 docker run -it -d --name myWebApp --cpus=2 --memory=2000m --hostname=doc --domainname=otxlab.net -p 443:443 imagename
  

ipconfig моего контейнера выглядит следующим образом

 >ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : doc.otxlab.net
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter #2
   Physical Address. . . . . . . . . : 00-15-5D-0E-68-2B
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::a8d2:e3d5:656a:f19e%5(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.178.134(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . : 192.168.176.1
   DHCPv6 IAID . . . . . . . . . . . : 83891549
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-26-C9-D1-FD-00-15-5D-0E-68-2B
   DNS Servers . . . . . . . . . . . : 192.168.176.1
                                       10.194.17.21
                                       10.194.17.22
   NetBIOS over Tcpip. . . . . . . . : Disabled
  

С приведенной выше конфигурацией, хотя я могу пинговать внутренние серверы, но не могу выполнить пинг google.com
Мое приложение регистрирует ошибки с приведенной ниже ошибкой
Не удалось разрешить удаленное имя: ‘accounts.accesscontrol.windows.net ‘

Настройка DNS-сервера моей хост-машины как основного и вторичного

 Get-NetAdapter
Set-DnsClientServerAddress -InterfaceIndex 5 -ServerAddresses 10.194.17.21,10.194.17.22
  

Теперь я могу выполнить пинг google.com а также разрешить указанное выше имя с помощью nslookup
Но все же мое приложение регистрирует ошибки с приведенной ниже ошибкой
Время ожидания операции истекло

Не совсем уверен, почему приложение по-прежнему не может получить ответ от внешнего домена. Я также проверил свои журналы IIS

2020-08-19 08:14:31 192.168.178.134 GET /WebPartPage/??? — 443 — 192.168.176.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/ 537.36 https://doc.otxlab.net/WebPartPage/BrowseWebPartPage.aspx?SPHostUrl=https://.sharepoint.com/sites/test/amp;SPClientTag=0amp;SPProductNumber=16.0.20405.12005amp;wpId=g_ee83e176_1759_4e80_b2dc_4d53a7aa2d85amp;SenderId=DD6D40620 404 0 2 46

Я вижу, что для отправки запроса используется шлюз по умолчанию. Это проблема? Как я могу это изменить? Я попытался установить его на свой хост-компьютер (шлюз виртуальной машины по умолчанию), но безуспешно. Должен ли я создавать новую сеть для контейнера Windows?

Комментарии:

1. По-видимому, это известная проблема , и обходным путем является настройка DNS для daemon (используйте DNS-серверы Cloudflare или Google: 1.1.1.1, 8.8.8.8)

2. Привет @Xaqron, я пробовал с DNS-серверами Google, но я даже не могу выполнить пинг google.com затем. «Запрос Ping не смог найти хост google.com. Пожалуйста, проверьте имя и повторите попытку.» .