xpost od https://forums.docker.com/t/cannot-connect-to-chocolatey-org/38745
Spodziewane zachowanie
Korzystam z systemu Windows Server 2016 Datacenter (pobieranie MSDN) w wersji 64-bitowej - wersja 1607 - kompilacja 14393.1715
Używam Docker dla Windows i działam Windows Containers.
Myślę, że jest to najłatwiejsza rzecz na świecie, aby to zrobić:
reboot my host machine
docker run -it microsoft/windowsservercore
powershell
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
Oczekuje się, że to zainstaluje czekoladę w pojemniku.
Właściwie zamierzam to zrobić w pliku dokera, ale szukam minimalnego działającego przykładu, aby uzyskać pomoc w tej chwili.
Oto rzeczywisty plik dokera, który zawodzi (niestety nie jest tak kreatywny)
FROM microsoft/windowsservercore
SHELL ["Powershell"]
ENV ChocolateyUseWindowsCompression false;
RUN iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
Rzeczywiste zachowanie
Po pierwsze: uruchamiam to na maszynie wirtualnej Virtualbox. Wszystko, co chcę pracować, działa, w tym między innymi: wewnętrzna sieć połączeń i testy, uruchomiony serwer SQL, usługi WCF działające w moim środowisku tworzenia dokerów, dane wracają poprawnie. Wszystkie rzeczy, które oczekuję od systemu, działają. To ostatni krok, kciuki: D. Fakt, że uruchamiam to w VirtualBox, nie powinien mieć znaczenia, ponieważ Hyper-V działa i wszystkie moje maszyny działają zgodnie z oczekiwaniami. Po prostu uważam, że warto o tym wspomnieć.
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
Z mojego systemu operacyjnego hosta (Server 2016) mam te informacje:
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>
Informacja
Dane wyjściowe DockerDebugInfo.ps1: https://gist.github.com/jcolebrand/170673e45bf8a659552f22f2071c30d6
Informacje o systemie
System Windows Server Datacenter (pobieranie MSDN) 64-bitowy - wersja 1607 - kompilacja 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
Jeśli z jakiegokolwiek nieoczekiwanego powodu jest to ważne, system operacyjny hosta musi zostać aktywowany. Robię to w środowisku deweloperskim, więc nie martwiłem się jeszcze o aktywację VM. Nie mogę pojąć, jak to jest ważne. Zwłaszcza, że wszystko inne „po prostu działa”.
Stop-Service docker; Get-ContainerNetwork | Remove-ContainerNetwork -Force; Start-Service docker
przedstawia kilka problemów. nie znaleziono usługi z dokerem nazw. nie znaleziono sieci kontenerów z Get-ContainerNetworkOdpowiedzi:
Problem polega na tym, że obrazy systemu Windows konfigurują DNS jako pierwszą bramę domyślną interfejsu NAT, a następnie DNS komputera hosta. Wyszukiwanie DNS kończy się niepowodzeniem w stosunku do tego pierwszego resolvera i dostępu zewnętrznego.
--dns 8.8.8.8
Wydaje się, że dodanie (lub lokalnego resolvera) do CLI rozwiązuje problem.źródło
docker build --dns 8.8.8.8 -t choco .
nie działał. Następnie dodałem"dns": ["8.8.8.8"]
w daemon.json nie działa.Ponieważ komentarze są przejściowe, oto informacje dla następnej osoby próbującej rozwiązać ten problem. Edytuj tę odpowiedź, aby podać więcej szczegółów, chyba że jesteś Dockerem dla systemu Windows pro, w takim przypadku podaj lepszą odpowiedź: D
Po zmianie swojej karty sieciowej na mojej maszynie wirtualnej przeszedłem do demonstracji problemu mojej grupie IT i dodałem adapter Thunderbolt. Ponieważ istnieją systemy bezpieczeństwa, zdałem sobie sprawę, że muszę dodać oprogramowanie zabezpieczające do mojej maszyny wirtualnej, ale ponieważ nie jest ono przyłączone do domeny, to był problem. Przełączenie go z powrotem do NAT na karcie Wi-Fi, a następnie pokazanie problemu w mojej maszynie wirtualnej z systemem Windows 2016 w jakiś magiczny sposób sprawiło, że zaczęło działać.
Ta sama sieć. Ta sama konfiguracja maszyny wirtualnej. To samo oprogramowanie i host, bez zmian w czymkolwiek, co mogę śledzić.
Po sprawdzeniu, że Get-ContainerNetwork lub Get-WinNat nic nie pokazuje, naprawdę byłem na końcu diagnostyki. Zmiana tego adaptera karty sieciowej, a następnie jego przywrócenie najwyraźniej spowodowało, że coś się zresetowało. Dobre czasy.
Więc nie mam solidnej odpowiedzi, ale mam dobre obejście dla następnej osoby utknącej w moich butach, która, biorąc pod uwagę moje doświadczenie w zakresie pytań i odpowiedzi StackExchange, będę mną. Ale mam nadzieję, że to ci pomoże, losowy pytający w Internecie.
Oraz podatek XKCD dla tych, którzy nie mogą rozwiązać problemów.
źródło
ipconfig /flushdns
hosta systemu WindowsW wierszu polecenia uruchom
ipconfig /all
i poszukajDNS Servers
linii na wyjściu z czymś, co wygląda jak adres IP. To są serwery DNS twojego hosta.Edytuj
C:\ProgramData\Docker\config\daemon.json
i dodajdns
wpis z tym adresem IP. Na przykład, jeśli Twoim serwerem DNS jest 192.10.0.2, a 8.8.8.8 to DNS Google jako kopia zapasowa:Teraz uruchom ponownie Docker Desktop, a zdalne adresy URL mogą zostać rozwiązane przez Docker, zarówno podczas kompilacji, jak i podczas działania.
To rozwiązanie pochodzi z Faithful Anere pod adresem https://medium.com/@faithfulanere/solved-docker-build-could-not-resolve-archive-ubuntu-com-apt-get-fails-to-install-anyea-9ea4dfdcdcf2
źródło
Wypróbuj instrukcje instalacji z https://chocolatey.org/install#completely-offline-install (sekcja „Instalowanie za serwerem proxy”):
źródło