Instalei o Docker no meu Ubuntu 13.10 (Saucy Salamander) e quando digito no meu console:
sudo docker pull busybox
Estou tendo o erro a seguir:
Pulling repository busybox
2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
Versão do Docker:
$ sudo docker version
Client version: 0.10.0
Client API version: 1.10
Go version (client): go1.2.1
Git commit (client): dc9c28f
Server version: 0.10.0
Server API version: 1.10
Git commit (server): dc9c28f
Go version (server): go1.2.1
Last stable version: 0.10.0
Estou atrás de um servidor proxy sem autenticação, e este é o meu /etc/apt/apt.conf
arquivo:
Acquire::http::proxy "http://192.168.1.1:3128/";
Acquire::https::proxy "https://192.168.1.1:3128/";
Acquire::ftp::proxy "ftp://192.168.1.1:3128/";
Acquire::socks::proxy "socks://192.168.1.1:3128/";
O que estou fazendo de errado?
Acquire::socks::proxy
significa definir o proxy para todos os URLs que começam com umsocks
esquema. Como o seusources.list
não possuisocks://
URLs, essa linha é totalmente ignorada.docker-compose
?Respostas:
Aqui está um link para a documentação oficial do Docker para proxy HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Um resumo rápido:
Primeiro, crie um diretório drop-in systemd para o serviço Docker:
Agora crie um arquivo chamado
/etc/systemd/system/docker.service.d/http-proxy.conf
que adicione aHTTP_PROXY
variável de ambiente:Se você possui registros internos do Docker que precisam entrar em contato sem fazer proxy, é possível especificá-los por
NO_PROXY
meio da variável de ambiente:Alterações de liberação:
Verifique se a configuração foi carregada:
Reinicie o Docker:
fonte
/etc/default/docker
não funciona. Talvez eu deva removerexport
como o documentado para Centos.sudo systemctl restart docker
é estritamente necessário para que ele funcione.systemctl
não está disponível para o ubuntu 14.04, ele é usadoupstart
para ativar os serviços.Suas configurações de proxy do APT não estão relacionadas ao Docker.
O Docker usa a variável de ambiente HTTP_PROXY, se presente. Por exemplo:
Mas, em vez disso, sugiro que você dê uma olhada no seu
/etc/default/docker
arquivo de configuração: você deve ter uma linha para descomentar (e talvez ajustar) para que suas configurações de proxy sejam aplicadas automaticamente. Em seguida, reinicie o servidor Docker:fonte
No CentOS, o arquivo de configuração do Docker está em:
Adicionar a linha abaixo me ajudou a fazer com que o daemon do Docker funcionasse atrás de um servidor proxy:
fonte
export
. Tem certeza de que isso está correto?export
só funciona no CentOS6 e / ou no CentOS7export HTTP_PROXY=...
é um Bashism, para shells não Bash (como o que / bin / sh pode ser), use duas linhasHTTP_PROXY=...
e, em seguidaexport HTTP_PROXY
, dito isso, eu não precisava dissoexport
.Se você estiver usando o novo Docker para Mac (ou Docker para Windows ), clique com o botão direito do mouse no ícone da bandeja do Docker e selecione Preferências (Windows: Configurações), vá para Avançado e, em Proxies, especifique suas configurações de proxy. Clique em Aplicar e reiniciar e aguarde até o Docker reiniciar.
fonte
No Ubuntu, você precisa definir o http_proxy para o daemon do Docker, não o processo do cliente. Isso é feito em
/etc/default/docker
(veja aqui ).fonte
Para estender a resposta de Arun , para que isso funcionasse no CentOS 7, tive que remover os comandos "export". Então edite
E adicione:
Em seguida, reinicie o Docker:
A fonte é esta postagem do blog .
fonte
Por que um proxy vinculado localmente não funciona
O problema
Se você estiver executando um proxy vinculado localmente , por exemplo, ouvindo
127.0.0.1:8989
, ele NÃO FUNCIONA no Docker for Mac . Na documentação do Docker :O mesmo vale para o servidor Docker. (Para entender o lado do servidor e o cliente do Docker, tente executar
docker version
.) E o lado do servidor é executado em uma camada de virtualização próprialocalhost
. Portanto, ele não se conectará ao servidor proxy nolocalhost
sistema operacional host.A solução
Portanto, se você estiver usando um proxy vinculado localmente como eu, basicamente precisará fazer o seguinte para fazê-lo funcionar com o Docker para Mac:
Faça seu servidor proxy escutar em
0.0.0.0
vez de127.0.0.1
. Cuidado: você precisará de uma configuração de firewall adequada para impedir o acesso malicioso a ela.Adicione um alias de loopback à
lo0
interface, por exemplo10.200.10.1/24
:Definir HTTP e / ou HTTPS proxy para
10.200.10.1:8989
de Preferências no menu da bandeja Docker (assumir que o servidor proxy está escutando na porta8989
).Depois disso, teste as configurações de proxy executando um comando em um novo contêiner a partir de uma imagem que não é baixada:
Aviso: o alias de loopback definido por
ifconfig
não preserva após uma reinicialização. Tornar persistente é outro tópico. Verifique esta postagem do blog em japonês (o Google Translate pode ajudar).fonte
Esta é a correção que funcionou para mim: Ubuntu, Docker versão: 1.6.2
No arquivo
/etc/default/docker
, adicione a linha:Reinicie o Docker
fonte
Para configurar o Docker para funcionar com um proxy, você precisa adicionar a variável de ambiente HTTPS_PROXY / HTTP_PROXY ao arquivo sysconfig do Docker (
/etc/sysconfig/docker
).Dependendo se você usa
init.d
ou a ferramenta de serviços, você precisa adicionar a instrução "export" (devido aos logs do relatório Debian Bug - # 767441. Exemplos em / etc / default / docker são enganosos quanto à sintaxe suportada ):O repositório do Docker (Docker Hub) suporta apenas HTTPS. Para que o Docker trabalhe com proxies de interceptação SSL, você deve adicionar o certificado raiz do proxy ao armazenamento confiável dos sistemas.
Para o CentOS, copie o arquivo para
/etc/pki/ca-trust/source/anchors/
e atualize o armazenamento confiável da CA e reinicie o serviço Docker.Se o seu proxy usar autenticação NTLMv2 - você precisará usar proxies intermediários como Cntlm para fazer a ponte da autenticação. Esta postagem do blog explica isso em detalhes .
fonte
Na nova versão do Docker, docker-engine , em uma distribuição baseada em systemd , você deve adicionar a linha de variável de ambiente a /lib/systemd/system/docker.service , conforme mencionado por outros:
fonte
Depois de instalar o Docker, faça o seguinte:
Em seguida, você pode puxar ou fazer qualquer coisa:
fonte
Como ainda não estou autorizado a comentar:
Para o CentOS 7, eu precisava ativar o EnvironmentFile no "docker.service", conforme descrito aqui: Controlar e configurar o Docker com systemd .
Edit: Estou adicionando minha solução, conforme declarado por Nilesh. Eu precisava abrir "/etc/systemd/system/docker.service" e precisei adicionar na seção
Somente então o arquivo "etc / sysconfig / docker" foi carregado no meu sistema.
fonte
Para resolver o problema de curvatura na construção do Docker, adicionei o seguinte dentro do arquivo Docker:
Observe que a instrução ENV é ANTES da instrução EXECUTAR.
E para tornar o daemon do Docker capaz de acessar a Internet (eu uso o Kitematic com o boot2docker), adicionei o seguinte em
/var/lib/boot2docker/profile
:Em seguida, reiniciei o Docker com
sudo /etc/init.d/docker restart
.fonte
Se estiver usando o proxy socks5, aqui está o meu teste com o Docker 17.03.1-ce com a configuração "all_proxy" e funcionou:
fonte
A solução completa para Windows, para definir as configurações de proxy.
Você pode configurá-lo diretamente clicando com o botão direito do mouse em configurações, no ícone do Docker e, em seguida, em Proxies.
Lá você pode configurar o endereço proxy, porta, nome de usuário e senha.
Neste formato:
Exemplo:
Nada além disso.
fonte
Simplesmente definir variáveis de ambiente proxy não me ajudou na versão 1.0.1 ... Eu tive que atualizar o
/etc/default/docker.io
arquivo com o valor correto para a variável "http_proxy".fonte
Se você estiver no Ubuntu, execute estes comandos para adicionar seu proxy.
E descomente as linhas que especificam
E substitua-o pelo seu servidor proxy e nome de usuário apropriados.
Em seguida, reinicie o Docker usando:
Agora você pode executar comandos do Docker atrás do proxy:
fonte
Talvez você precise configurar variáveis em minúsculas. No meu caso, meu arquivo /etc/systemd/system/docker.service.d/http-proxy.conf se parece com o seguinte:
Boa sorte! :)
fonte
Eu também estava enfrentando o mesmo problema atrás de um firewall. Siga os passos abaixo:
Não use ou remova o arquivo https_prxoy.conf.
Recarregue e reinicie seu contêiner Docker:
fonte
Se você estiver no Ubuntu, você deve executar este comando:
E recarregue o Docker com:
Ou vá para o
/etc/docker.io
nano ...fonte
No Ubuntu 14.04 (Trusty Tahr) com Docker 1.9.1, apenas descomentei a
http_proxy
linha, atualizei o valor e reiniciei o serviço Docker.e depois
fonte
No RHEL6.6, apenas isso funciona (observe o uso de
export
):/ etc / sysconfig / docker
NOTA: Ambos podem usar o
http
protocolo.)Obrigado a https://crondev.com/running-docker-behind-proxy/
fonte
Na minha rede, o Ubuntu trabalha atrás de um servidor proxy ISA corporativo. E isso requer autenticação. Eu tentei todas as soluções mencionadas acima e nada ajudou. O que realmente ajudou foi escrever uma linha de proxy no arquivo
/etc/systemd/system/docker.service.d/https-proxy.conf
sem um nome de domínio.Ao invés de
ou
e alguma outra substituição, como
@ -> %40
ou\ -> \\
eu tentei usarE isso funciona agora.
fonte
Tente o seguinte:
fonte
Isso não responde exatamente à pergunta, mas pode ajudar, especialmente se você não quiser lidar com arquivos de serviço.
Caso você esteja hospedando a imagem, uma maneira é converter a imagem como um arquivo tar, usando algo como o seguinte no servidor .
Basta baixar o arquivo e transformá-lo novamente em uma imagem.
fonte