#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. Пожалуйста, проверьте имя и повторите попытку.» .