xpost de https://forums.docker.com/t/cannot-connect-to-chocolatey-org/38745
Comportamento esperado
Estou executando o Datacenter do Windows Server 2016 (download do MSDN) de 64 bits - Versão 1607 - Compilação 14393.1715
Estou usando o Docker For Windows e executando o Windows Containers.
Eu acho que essa é a coisa mais fácil do mundo, para fazer isso:
reboot my host machine
docker run -it microsoft/windowsservercore
powershell
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
A expectativa é que isso instale chocolate no recipiente.
Na verdade, eu vou fazer isso em um arquivo docker, mas estou procurando um exemplo de trabalho mínimo para obter ajuda agora.
Aqui está um arquivo docker real que falha (não é tão criativo, infelizmente)
FROM microsoft/windowsservercore
SHELL ["Powershell"]
ENV ChocolateyUseWindowsCompression false;
RUN iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
Comportamento real
Primeiras coisas primeiro: estou executando isso em uma VM do Virtualbox. Todo o resto que eu quero trabalhar funciona, incluindo, entre outros: conectividade e testes de rede interna, execução de servidor sql, serviços WCF em execução no meu ambiente de composição de encaixe, dados retornando corretamente. Todas as coisas que espero que o sistema faça estão funcionando. Este é o último passo, dedos cruzados: D. O fato de eu estar executando isso no VirtualBox não deve importar, pois o Hyper-V está funcionando e todas as minhas máquinas estão funcionando conforme o esperado. Só acho que vale a pena mencionar.
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
No sistema operacional host (Server 2016), tenho essas informações:
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>
Em formação
Saída do DockerDebugInfo.ps1: https://gist.github.com/jcolebrand/170673e45bf8a659552f22f2071c30d6
Informação do sistema
Executando o Datacenter do Windows Server (download do MSDN) de 64 bits - Versão 1607 - Compilação 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
Se, por qualquer motivo esquecido, isso for importante, o sistema operacional host precisará ser ativado. Estou fazendo isso em um ambiente de desenvolvimento one-shot, por isso não estava particularmente preocupado em ativar a VM ainda. Não consigo entender como isso é importante. Especialmente porque tudo o resto "simplesmente funciona".
Stop-Service docker; Get-ContainerNetwork | Remove-ContainerNetwork -Force; Start-Service docker
apresenta alguns problemas. nenhum serviço encontrado com o docker de nome. nenhuma rede de contêiner encontrada com Get-ContainerNetworkRespostas:
O problema parece ser que as imagens do Windows configuram o DNS primeiro como o gateway padrão da interface NAT e, em seguida, o DNS da máquina host. As pesquisas de DNS falham nesse primeiro resolvedor e no acesso externo.
Adicionar
--dns 8.8.8.8
(ou seu resolvedor local) à CLI parece solucionar o problema.fonte
docker build --dns 8.8.8.8 -t choco .
não funcionou. Então eu adicionei"dns": ["8.8.8.8"]
no daemon.json não funcionou.Como os comentários são transitórios, aqui estão algumas informações para a próxima pessoa que tenta resolver esse problema. Sinta-se à vontade para editar esta resposta para fornecer mais detalhes, a menos que você seja um Docker for Windows pro; nesse caso, dê uma resposta melhor: D
Fui demonstrar o problema para o meu grupo de TI depois de alterar minha NIC na minha VM para fazer uma ponte e adicionar meu adaptador de raio. Como existem sistemas de segurança, percebi que precisava adicionar o software de segurança à minha VM, mas como ele não está associado ao domínio, isso foi um problema. Trocá-lo de volta para NAT no adaptador wifi e, em seguida, demonstrar o problema na minha VM do Windows 2016, de alguma forma mágica, fez com que ele começasse a funcionar.
Mesma rede. Mesma configuração de VM. Mesmo software e host, sem alterações em nada que eu possa rastrear.
Tendo verificado Get-ContainerNetwork ou Get-WinNat sem mostrar nada, eu realmente estava no final do diagnóstico. Alterar esse adaptador de NIC e, em seguida, alterá-lo novamente, aparentemente causou uma redefinição. Bons tempos.
Portanto, não tenho uma resposta sólida, mas tenho uma boa solução alternativa para a próxima pessoa presa no meu lugar, que, dado meu histórico de perguntas e respostas do StackExchange, serei eu. Mas espero que ajude você também, solicitante aleatório da Internet.
E um imposto XKCD, para aqueles impossíveis de resolver problemas.
fonte
ipconfig /flushdns
no host janelasEm um prompt de comando, execute
ipconfig /all
e procure umaDNS Servers
linha na saída com algo parecido com um endereço IP. Esses são os servidores DNS da sua máquina host.Edite
C:\ProgramData\Docker\config\daemon.json
e adicione umadns
entrada com esse endereço IP. Por exemplo, se o seu servidor DNS for 192.10.0.2 e 8.8.8.8 for o DNS do Google como backup:Agora reinicie o Docker Desktop e os URLs remotos podem ser resolvidos pelo Docker, no build ou no tempo de execução.
Esta solução veio da Faithful Anere em https://medium.com/@faithfulanere/solved-docker-build-could-not-resolve-archive-ubuntu-com-apt-get-fails-to-install-anything-9ea4dfdcdcf2
fonte
Tente as instruções de instalação em https://chocolatey.org/install#completely-offline-install (seção "Instalando atrás de um proxy"):
fonte