xpost depuis https://forums.docker.com/t/cannot-connect-to-chocolatey-org/38745
Comportement prévisible
J'exécute Windows Server 2016 Datacenter (téléchargement MSDN) 64 bits - Version 1607 - Build 14393.1715
J'utilise Docker pour Windows et j'exécute des conteneurs Windows.
Je pense que c'est la chose la plus simple au monde, pour ce faire:
reboot my host machine
docker run -it microsoft/windowsservercore
powershell
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
L'attente est que cela installe du chocolat dans le récipient.
En fait, je vais le faire dans un dockerfile, mais je vais pour un exemple de travail minimum pour obtenir de l'aide maintenant.
Voici un fichier docker réel qui échoue (ce n'est pas si créatif, malheureusement)
FROM microsoft/windowsservercore
SHELL ["Powershell"]
ENV ChocolateyUseWindowsCompression false;
RUN iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
Comportement réel
Tout d'abord: je l'exécute dans une machine virtuelle Virtualbox. Tout ce que je veux travailler fonctionne, y compris mais sans s'y limiter: connectivité et tests du réseau interne, serveur SQL en cours d'exécution, services WCF exécutés sur mon environnement de composition de docker, les données reviennent correctement. Toutes les choses que j'attends du système fonctionnent. C'est la dernière étape, les doigts croisés: D. Le fait que j'exécute cela dans VirtualBox ne devrait pas avoir d'importance, car l'Hyper-V fonctionne et toutes mes machines fonctionnent comme prévu. Je pense juste que cela mérite d'être mentionné.
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
Depuis mon OS hôte (Server 2016), j'ai ces informations:
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>
Information
Sortie DockerDebugInfo.ps1: https://gist.github.com/jcolebrand/170673e45bf8a659552f22f2071c30d6
Informations système
Exécution de Windows Server Datacenter (téléchargement MSDN) 64 bits - Version 1607 - Build 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
Si, pour une raison quelconque, cela est important, le système d'exploitation hôte doit être activé. Je fais cela dans un environnement de développement à un coup donc je n'étais pas particulièrement inquiet pour l'activation de la VM pour l'instant. Je ne peux pas comprendre à quel point c'est important. D'autant plus que tout le reste "fonctionne juste".
Stop-Service docker; Get-ContainerNetwork | Remove-ContainerNetwork -Force; Start-Service docker
présente quelques problèmes. aucun service trouvé avec le nom docker. aucun réseau de conteneurs trouvé avec Get-ContainerNetworkRéponses:
Le problème semble être que les images Windows configurent DNS pour être d'abord la passerelle par défaut de l'interface NAT, puis le DNS de la machine hôte. Les recherches DNS échouent contre ce premier résolveur et cet accès externe.
L'ajout
--dns 8.8.8.8
(ou votre résolveur local) à la CLI semble contourner le problème.la source
docker build --dns 8.8.8.8 -t choco .
n'a pas fonctionné. Ensuite, j'ai ajouté"dns": ["8.8.8.8"]
dans daemon.json ne fonctionnait pas.Comme les commentaires sont transitoires, voici quelques informations pour la prochaine personne essayant de résoudre ce problème. N'hésitez pas à modifier cette réponse pour fournir plus de détails, sauf si vous êtes un Docker pour Windows pro, auquel cas veuillez donner une meilleure réponse: D
Je suis allé faire une démonstration du problème pour mon groupe informatique après avoir changé mon NIC sur ma VM en ponté et ajouté mon adaptateur Thunderbolt. Comme il existe des systèmes de sécurité, j'ai réalisé que je devais ajouter le logiciel de sécurité à ma machine virtuelle, mais comme il n'est pas joint au domaine, c'était un problème. Le basculer à nouveau sur NAT sur l'adaptateur wifi, puis aller démo du problème dans ma machine virtuelle Windows 2016 l'a fait en quelque sorte comme par magie commencer à fonctionner.
Même réseau. Même configuration de machine virtuelle. Même logiciel et hôte, aucun changement à tout ce que je peux suivre.
Après avoir vérifié Get-ContainerNetwork ou Get-WinNat ne montrant rien, j'étais vraiment à la fin des diagnostics. Changer cet adaptateur NIC puis le changer en arrière a apparemment provoqué une réinitialisation. Bon temps.
Donc, je n'ai pas de réponse solide, mais j'ai une bonne solution de contournement pour la prochaine personne coincée dans mes chaussures, qui, compte tenu de mes antécédents de questions et réponses sur StackExchange, sera moi. Mais j'espère que cela vous aide aussi, demandeur Internet aléatoire.
Et une taxe XKCD, pour ceux impossibles à résoudre les problèmes.
la source
ipconfig /flushdns
sur l'hôte WindowsÀ l'invite de commandes, exécutez
ipconfig /all
et recherchez uneDNS Servers
ligne dans la sortie avec quelque chose qui ressemble à une adresse IP. Il s'agit du ou des serveurs DNS de votre ordinateur hôte.Modifiez
C:\ProgramData\Docker\config\daemon.json
et ajoutez unedns
entrée avec cette adresse IP. Par exemple, si votre serveur DNS est 192.10.0.2 et 8.8.8.8 est le DNS de Google en tant que sauvegarde:Redémarrez maintenant Docker Desktop et les URL distantes peuvent être résolues par Docker, soit lors de la construction, soit lors de l'exécution.
Cette solution est venue de Faithful Anere à https://medium.com/@faithfulanere/solved-docker-build-could-not-resolve-archive-ubuntu-com-apt-get-fails-to-install-anything-9ea4dfdcdcf2
la source
Essayez les instructions d'installation de https://chocolatey.org/install#completely-offline-install (section "Installation derrière un proxy"):
la source