xpost от https://forums.docker.com/t/cannot-connect-to-chocolatey-org/38745
Ожидаемое поведение
Я использую Windows Server 2016 Datacenter (загрузка MSDN) 64 бит - Версия 1607 - Сборка 14393.1715
Я использую Docker для Windows и запускаю контейнеры Windows.
Я полагаю, что это самая легкая вещь в мире, чтобы сделать это:
reboot my host machine
docker run -it microsoft/windowsservercore
powershell
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
Ожидание для этого, чтобы установить шоколад в контейнере.
На самом деле я собираюсь делать это в докер-файле, но я собираюсь привести минимальный рабочий пример, чтобы получить помощь прямо сейчас.
Вот фактический файл докера, который терпит неудачу (это не так творчески, к сожалению)
FROM microsoft/windowsservercore
SHELL ["Powershell"]
ENV ChocolateyUseWindowsCompression false;
RUN iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
Фактическое поведение
Перво-наперво: я запускаю это на виртуальной машине Virtualbox. Все остальное, с чем я хочу работать, работает, включая, но не ограничиваясь: внутреннее сетевое подключение и тесты, запущенный сервер sql, службы WCF, работающие в моей среде docker-compose, данные возвращаются правильно. Все, что я ожидаю от системы, работает. Это последний шаг, скрестив пальцы: D. Тот факт, что я запускаю это в VirtualBox, не должен иметь значения, так как Hyper-V работает, и все мои машины работают как положено. Я просто думаю, что стоит упомянуть.
docker run -it microsoft/windowsservercore
powershell
PS C:\> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
Exception calling "DownloadString" with "1" argument(s): "The remote name could not be resolved: 'chocolatey.org'"
At line:1 char:1
+ iex ((new-object net.webclient).DownloadString('https://chocolatey.or ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException
PS C:\> ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : 339189e8dd56
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : attlocal.net
Ethernet adapter vEthernet (Container NIC 6412b757):
Connection-specific DNS Suffix . : attlocal.net
Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #4
Physical Address. . . . . . . . . : 00-15-5D-80-E9-2C
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::a51b:820e:e45d:fab6%29(Preferred)
IPv4 Address. . . . . . . . . . . : 172.22.202.147(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . : 172.22.192.1
DNS Servers . . . . . . . . . . . : 172.22.192.1
10.0.2.2
NetBIOS over Tcpip. . . . . . . . : Disabled
С моей операционной системы (Server 2016) у меня есть эта информация:
PS C:\docker> ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : WIN-CDPNLUMSTOE
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : attlocal.net
Ethernet adapter vEthernet (HNS Internal NIC) 2:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #2
Physical Address. . . . . . . . . : 00-15-5D-80-E5-17
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::5939:52e7:aaf3:5b70%9(Preferred)
IPv4 Address. . . . . . . . . . . : 172.22.192.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : 301995357
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-21-4E-0C-48-08-00-27-51-5F-6A
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter vEthernet (HNS Internal NIC) 3:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #3
Physical Address. . . . . . . . . : 00-15-5D-B6-45-8D
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::1de4:bff7:36fb:ee92%13(Preferred)
IPv4 Address. . . . . . . . . . . : 172.23.128.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : 570430813
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-21-4E-0C-48-08-00-27-51-5F-6A
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . : attlocal.net
Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Desktop Adapter
Physical Address. . . . . . . . . : 08-00-27-51-5F-6A
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::10de:923b:b866:221d%4(Preferred)
IPv4 Address. . . . . . . . . . . : 10.0.2.15(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Friday, August 19, 1881 6:47:42 PM
Lease Expires . . . . . . . . . . : Tuesday, September 26, 2017 11:15:59 PM
Default Gateway . . . . . . . . . : 10.0.2.2
DHCP Server . . . . . . . . . . . : 10.0.2.2
DHCPv6 IAID . . . . . . . . . . . : 50855975
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-21-4E-0C-48-08-00-27-51-5F-6A
DNS Servers . . . . . . . . . . . : 10.0.2.2
NetBIOS over Tcpip. . . . . . . . : Enabled
Tunnel adapter isatap.{C420BD56-5715-49BF-9382-5EA99AA48563}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #5
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{70EA4F39-FE0F-4040-B718-ACAC00765808}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #6
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.attlocal.net:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : attlocal.net
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #7
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
PS C:\docker>
Информация
Вывод DockerDebugInfo.ps1: https://gist.github.com/jcolebrand/170673e45bf8a659552f22f2071c30d6
Системная информация
Запуск Windows Server Datacenter (загрузка MSDN) 64 бит - Версия 1607 - Сборка 14393.1715
PS C:\docker> docker version
Client:
Version: 17.06.2-ce
API version: 1.30
Go version: go1.8.3
Git commit: cec0b72
Built: Tue Sep 5 19:57:19 2017
OS/Arch: windows/amd64
Server:
Version: 17.06.2-ce
API version: 1.30 (minimum version 1.24)
Go version: go1.8.3
Git commit: cec0b72
Built: Tue Sep 5 19:59:47 2017
OS/Arch: windows/amd64
Experimental: true
Если по какой-либо оставленной причине это важно, хост-ОС необходимо активировать. Я делаю это в среде однократных разработчиков, поэтому пока не особо беспокоился об активации виртуальной машины. Я не могу понять, как это важно. Тем более что все остальное "просто работает".
Stop-Service docker; Get-ContainerNetwork | Remove-ContainerNetwork -Force; Start-Service docker
представляет пару проблем. Служба с именем Docker не найдена. с Get-ContainerNetwork не найдено ни одной контейнерной сетиОтветы:
Похоже, проблема заключается в том, что образы Windows настраивают DNS в качестве шлюза по умолчанию для интерфейса NAT, а затем DNS хост-машины. DNS-запросы не срабатывают против первого распознавателя и внешнего доступа.
Добавление
--dns 8.8.8.8
(или ваш локальный распознаватель) к CLI, кажется, обходит проблему.источник
docker build --dns 8.8.8.8 -t choco .
не сработало. Тогда я добавил"dns": ["8.8.8.8"]
в daemon.json не работает.Поскольку комментарии временны, вот некоторая информация для следующего человека, пытающегося решить эту проблему. Пожалуйста, не стесняйтесь редактировать этот ответ, чтобы предоставить более подробную информацию, если только вы не Docker для Windows Pro, в этом случае, пожалуйста, дайте лучший ответ: D
Я решил продемонстрировать проблему для своей ИТ-группы после того, как сменил сетевой адаптер на виртуальной машине на мостовой и добавил адаптер Thunderbolt. Поскольку существуют системы безопасности, я понял, что мне нужно добавить программное обеспечение безопасности в мою виртуальную машину, но, поскольку оно не присоединено к домену, это было проблемой. Переключение обратно на NAT на адаптере Wi-Fi, а затем демонстрация проблемы в моей виртуальной машине Windows 2016 каким-то волшебным образом заставила его начать работать.
Та же сеть. Та же конфигурация виртуальной машины. То же программное обеспечение и хост, никаких изменений я не могу отследить.
Проверив Get-ContainerNetwork или Get-WinNat, не показывая ничего, я действительно был на моем конце диагностики. Смена адаптера NIC, а затем его замена, по-видимому, привели к сбросу. Хорошие времена.
Таким образом, у меня нет четкого ответа, но у меня есть хороший обходной путь для следующего человека, застрявшего в моих ботинках, который, учитывая мой послужной список вопросов и ответов StackExchange, будет мне. Но я надеюсь, что это поможет вам, случайный интернет-спрашивающий.
И налог XKCD, для тех, кто не может решить проблемы.
источник
ipconfig /flushdns
на хосте WindowsВ командной строке запустите
ipconfig /all
и найдитеDNS Servers
строку в выходных данных, похожую на IP-адрес. Это DNS-сервер (ы) вашего хост-компьютера.Отредактируйте
C:\ProgramData\Docker\config\daemon.json
и добавьтеdns
запись с этим IP-адресом. Например, если ваш DNS-сервер 192.10.0.2 и 8.8.8.8 - это DNS от Google в качестве резервной копии:Теперь перезапустите Docker Desktop, и удаленные URL-адреса могут быть разрешены Docker во время сборки или во время выполнения.
Это решение было получено от Faithful Anere по адресу https://medium.com/@faithfulanere/solved-docker-build-could-not-resolve-archive-ubuntu-com-apt-get-fails-to-install-anything-9ea4dfdcdcf2
источник
Попробуйте инструкции по установке по адресу https://chocolatey.org/install#completely-offline-install (раздел «Установка через прокси-сервер»):
источник