A maioria das redes corporativas usa servidores proxy pra monitorar e filtrar o tráfego da internet. Isso cria obstáculos quando o Docker tenta puxar imagens dos registros. Você vai ter problemas com tempo limite de conexão, erros de autenticação e compilações que não funcionam na sua rede doméstica. Esses problemas com proxy podem atrapalhar as equipes de desenvolvimento que não conseguem acessar as imagens básicas de que precisam.
A configuração do proxy do Docker resolve esses problemas de conectividade, melhorando o desempenho com cache e atendendo aos requisitos de segurança da empresa. Depois de configurados, seus contêineres vão puxar imagens independentemente das restrições de rede.
Neste tutorial, vou te mostrar como configurar as definições do proxy do daemon do Docker, as variáveis de ambiente do contêiner e como lidar com a configuração do proxy no Docker Compose.
Você é novo no Docker e tá se sentindo meio perdido com todos esses conceitos de rede? Comece com o básico do Docker e ganhe confiança passo a passo.
Entendendo a arquitetura do proxy do Docker
Diferentes partes do ecossistema Docker precisam de configuração de proxy em diferentes camadas.
Os proxies são tipo intermediários entre os seus componentes Docker e as redes externas. Quando o Docker precisa puxar imagens, os contêineres precisam de acesso à Internet ou as compilações exigem recursos externos, os servidores proxy controlam e monitoram essas conexões. Eles ficam entre suas aplicações em contêineres e o mundo exterior, filtrando solicitações e respostas.
As empresas usam proxies com o Docker pra melhorar o desempenho, a segurança e a conformidade.
O desempenho vem do armazenamento em cache de recursos acessados com frequência, como imagens básicas, reduzindo o tempo de download para toda a equipe. Os benefícios de segurança incluem filtragem de tráfego, verificação de malware e bloqueio de acesso a sites não autorizados. Os requisitos de conformidade exigem que todo o tráfego de rede passe por canais monitorados com controles de acesso adequados e registros de auditoria.
A configuração do proxy do Docker rola em quatro camadas:
Proxy do cliente: afeta comandos da CLI do Docker, como docker pull e docker push
Proxy do daemon: controla como o daemon do Docker acessa registros externos
Proxy de tempo de execução do contêiner: define variáveis proxy para aplicativos dentro de contêineres
Proxy de tempo de compilação: cuida das configurações de proxy durante as operações de “ docker build ” quando os Dockerfiles precisam de acesso à Internet.
Cada camada tem uma função e precisa de uma configuração diferente.
Pra fazer o Docker funcionar com o proxy da sua empresa, você precisa configurar tanto o daemon quanto o cliente do Docker.
Por quê? Porque eles lidam com diferentes tipos de solicitações de rede.
O daemon cuida de puxar e enviar imagens e autenticar o registro, enquanto o cliente dá conta das operações da CLI e das chamadas da API. Se alguma dessas configurações estiver faltando, vai ter lacunas que podem fazer com que as operações do Docker falhem com erros de conexão.
Como configurar o daemon do Docker
O daemon do Docker lê as configurações de proxy em /etc/docker/daemon.json. Crie esse arquivo se ele não existir:
O campo “ noProxy ” tem os endereços que não precisam passar pelo proxy. Inclua aqui os domínios do seu registro interno e os endereços localhost.
Configurando substituições do serviço systemd
Em sistemas Linux baseados em systemd, você também precisa configurar o próprio serviço Docker para usar o proxy. Crie o diretório de substituição e o arquivo de configuração:
O comando “daemon reload” diz ao systemd para ler a nova configuração do serviço, enquanto o comando “docker restart” aplica as alterações no arquivo “ daemon.json ”.
Coisas específicas da plataforma
O Docker Desktop lida com a configuração de proxy de maneira diferente das instalações em servidor. No Windows e no macOS, use a interface gráfica do Docker Desktop para definir as configurações de proxy na seção Recursos - Proxies. Essas configurações ajustam automaticamente tanto o daemon quanto o cliente.
Os hosts Linux que usam o Docker Engine precisam da configuração manual descrita acima. Algumas distribuições empacotam o Docker de forma diferente, então dá uma olhada se o seu sistema usa o dockerd direto ou através de um gerenciador de serviços diferente.
Verificando sua configuração
Teste se o Docker consegue acessar registros externos com um comando pull simples:
Os comandos da CLI do Docker precisam de uma configuração de proxy separada das configurações do daemon. As variáveis de ambiente oferecem controle flexível sobre como os clientes Docker se conectam por meio de proxies corporativos.
Os proxies do cliente controlam as operações da CLI do Docker, como docker pull, docker push e docker login. Quando você executa esses comandos, o cliente Docker faz solicitações HTTP para registros e precisa saber qual servidor proxy usar. Sem as configurações de proxy do cliente, essas operações falham mesmo quando o daemon está configurado corretamente.
Método de configuração JSON
A maneira mais simples é usar o arquivo de configuração do Docker em ~/.docker/config.json:
Para configurar por usuário, adicione-os ao seu perfil shell (~/.bashrc, ~/.zshrc) ou use o método de configuração JSON. As configurações por usuário dão aos desenvolvedores a flexibilidade de usar proxies diferentes ou ignorá-los completamente para testes.
Considerações de segurança
Nunca coloque nomes de usuário e senhas em arquivos de configuração ou variáveis de ambiente.
As credenciais de proxy em texto simples podem ser um risco de segurança, principalmente em ambientes compartilhados ou sistemas de controle de versão.
Em vez disso, use estas abordagens:
Configure seu servidor proxy para autenticação baseada em IP, se possível.
Use ajudantes de credenciais ou sistemas de armazenamento seguro para autenticação.
Configure contas de serviço com permissões mínimas para operações do Docker
Se você precisar incluir credenciais, use o formato http://username:[email protected]:8080, mas guarde-as em arquivos protegidos com permissões restritas.
Configuração do proxy na hora da compilação
As compilações do Docker precisam que as configurações de proxy sejam passadas explicitamente por meio de argumentos de compilação:
Os argumentos de compilação viram variáveis de ambiente dentro do contexto de compilação.
Isso permite que as instruções “ RUN ” baixem pacotes e dependências através do seu proxy. Sem esses argumentos, as compilações falham quando os Dockerfiles tentam instalar software ou buscar recursos da Internet.
As configurações de proxy de tempo de compilação não ficam na imagem final, a menos que você as defina explicitamente com instruções ENV no seu Dockerfile.
As variáveis de ambiente oferecem flexibilidade para lidar com as configurações de proxy no nível certo para o seu fluxo de trabalho.
Injeção de proxy em contêiner e em tempo de compilação
A configuração do cliente Docker só te leva até a metade do caminho — seus contêineres e compilações precisam de suas próprias configurações de proxy. Nesta seção, vou mostrar como injetar a configuração do proxy em tempo de execução e em tempo de compilação.
Variáveis de ambiente de tempo de execução
Os contêineres não pegam as configurações de proxy do seu host.
Você precisa passar variáveis proxy explicitamente ao iniciar contêineres. O Docker oferece várias maneiras de fazer isso, dependendo se você quer configurar todos os contêineres ou só alguns específicos.
A configuração JSON é a maneira mais simples de definir proxy de forma consistente, como falamos antes. Para recapitular, adicione isso ao seu arquivo ~/.docker/config.json:
A instrução ` ENV ` deixa as variáveis proxy disponíveis para todos os comandos ` RUN ` que vêm depois na sua compilação.
É bom saber que as limitações do BuildKit podem causar problemas de proxy com versões mais recentes do Docker. O BuildKit armazena contextos de compilação de forma agressiva, o que às vezes ignora alterações no proxy.
Você pode forçar o BuildKit a reconhecer atualizações de proxy:
Cada etapa pega os argumentos de compilação, mas não as variáveis de ambiente das etapas anteriores. Defina as variáveis proxy explicitamente em todas as etapas que precisarem delas.
Configurando gerenciadores de pacotes para usar um proxy em contêineres
As configurações de proxy do Docker não são automaticamente transferidas para os gerenciadores de pacotes dentro dos seus contêineres. Você precisa configurar cada gerenciador de pacotes separadamente para baixar pacotes através do proxy da sua empresa.
Gerenciadores de pacotes como apt-get, yum e apk fazem conexões HTTP diretas com repositórios de pacotes. Em redes com restrições, essas conexões não funcionam a menos que o gerenciador de pacotes saiba sobre o seu servidor proxy.
As variáveis de ambiente padrão não são suficientes. A maioria dos gerenciadores de pacotes tem seus próprios arquivos de configuração que substituem as configurações de proxy do sistema.
Ubuntu/Debian: configuração do apt-get
Crie um arquivo de configuração de proxy que o apt-get vai ler durante a instalação do pacote.
O arquivo “ /etc/apt/apt.conf.d/proxy.conf ” diz ao “ apt-get ” para passar todos os downloads de pacotes pelo seu proxy. O arquivo continua lá mesmo depois de você usar o comando “ RUN ” na sua compilação.
Você também pode definir exclusões de proxy para repositórios internos:
RUN echo 'Acquire::http::Proxy::internal.company.com "DIRECT";' >> /etc/apt/apt.conf.d/proxy.confTecnologia
Alpine Linux: configuração do apk
O Alpine usa o gerenciador de pacotes apk, que lê as configurações de proxy em /etc/apk/repositories e nas variáveis de ambiente.
apk O Alpine respeita as variáveis de ambiente padrão do proxy HTTP, então você não precisa de arquivos de configuração separados. Mas você pode criar um pra ter mais controle:
Você também pode excluir domínios específicos do roteamento do proxy adicionando este comando:
RUN echo 'proxy_exclude=internal.company.com,localhost' >> /etc/yum.confTecnologia
Testando a funcionalidade do proxy
Primeiro, você precisa verificar se o seu gerenciador de pacotes consegue acessar os repositórios através do proxy.
Adicione comandos de teste ao seu Dockerfile:
FROM python:3.13# Configure proxyRUN echo 'Acquire::http::Proxy "http://proxy.company.com:8080";' > /etc/apt/apt.conf.d/proxy.conf# Test package manager connectivityRUN apt-get update && \
apt-get install -y --dry-run curl && \
echo "Package manager proxy test passed"# Install actual packagesRUN apt-get install -y curl python3-pipTecnologia
A bandeira ` --dry-run ` testa a resolução do pacote sem realmente instalar nada. Se der certo, a configuração do seu proxy tá funcionando.
Você também pode testar com saída detalhada para depurar problemas de conexão:
RUN apt-get -o Debug::Acquire::http=true updateTecnologia
Isso mostra exatamente quais URLs o apt-get tenta acessar e se as conexões proxy funcionam.
Para testes alpinos, use o seguinte:
RUN apk update --verbose && \
apk add --simulate curl && \
echo "Alpine proxy test passed"Tecnologia
Resumindo, configure cada gerenciador de pacotes individualmente e suas compilações funcionarão atrás de qualquer proxy.
Precisa limpar artefatos de compilação relacionados ao proxy? Os comandos prune do Docker vão liberar espaço e manter seu sistema limpo.
Implementações avançadas de proxy
Os proxies HTTP básicos são bons pra começar, mas os ambientes de produção precisam de mais controle sobre o acesso ao registro e o cache de imagens. Veja como configurar proxies de cache e espelhos de registro para melhorar o desempenho e a confiabilidade.
Registros de proxy de cache
Puxar as mesmas imagens base várias vezes desperdiça largura de banda e deixa as compilações mais lentas.
Os proxies de cache ficam entre seus clientes Docker e registros externos, como o Docker Hub. Eles guardam as imagens que você usa mais no seu computador, então, da próxima vez que você precisar delas, elas vão aparecer na sua rede interna, em vez de ter que pegar da internet.
A escolha mais popular para ambientes empresariais é o Harbor:
Adicione isso a /etc/docker/daemon.json e reinicie o Docker. Todos os comandos “ docker pull ” vão tentar o espelho primeiro e, se ele não estiver disponível, vão tentar o Docker Hub.
A bandeira ` --progress=plain ` mostra qual registro o BuildKit realmente entra em contato. Você deve ver os URLs do espelho na saída da compilação.
É isso aí!
Está lidando com configurações complexas de proxy com vários contêineres? O Docker Compose facilita a conexão em rede e a descoberta de serviços.
Reforço da segurança
As configurações de proxy abrem novas possibilidades de ataque que precisam de muita atenção. Veja como bloquear o acesso ao soquete do Docker e proteger as credenciais do proxy contra exposição.
Proxy de socket do Docker
Expor o socket do Docker diretamente cria um risco enorme de segurança.
O soquete do Docker (/var/run/docker.sock) dá acesso de nível raiz a todo o seu sistema host. Qualquer processo que possa gravar nesse soquete pode criar contêineres com acesso ao sistema de arquivos do host, aumentar privilégios ou sair completamente do isolamento do contêiner.
A montagem direta na tomada é perigosa:
# DON'T DO THISdocker run -v /var/run/docker.sock:/var/run/docker.sock myappTecnologia
Esse padrão aparece em configurações Docker-in-Docker e pipelines CI/CD, mas é um pesadelo para a segurança. Um contêiner comprometido pode controlar todo o daemon do Docker.
Os serviços de proxy de soquete criam uma camada intermediária mais segura. Eles filtram as chamadas da API do Docker e limitam o que os contêineres podem realmente fazer.
O proxy só mostra pontos finais específicos da API do Docker. Defina as variáveis de ambiente como 1 para operações permitidas e 0 para as bloqueadas.
As suas aplicações conectam-se ao proxy em vez de ao socket bruto:
docker run --envDOCKER_HOST=tcp://docker-proxy:2375 myappTecnologia
Aqui estão algumas estratégias adicionais para fortalecer os soquetes:
Execute o proxy de soquete em um segmento de rede separado
Use autenticação TLS entre os clientes e o proxy
Fica de olho nos logs do proxy do soquete pra ver se tem alguma chamada de API suspeita.
Troque as credenciais de acesso do proxy de vez em quando
Gerenciamento de credenciais
As credenciais de proxy em URLs de texto simples aparecem em todo o lado - registos, listas de processos, dumps de ambiente.
Nunca coloque credenciais em URLs proxy:
# SECURITY RISK - credentials visible in process listexportHTTP_PROXY=http://admin:[email protected]:8080Tecnologia
Qualquer pessoa com acesso a ps aux ou dumps de variáveis de ambiente pode ver a sua senha de proxy. Isso inclui registros de aplicativos, inspeção de contêineres e ferramentas de monitoramento do sistema.
Em vez disso, use arquivos de autenticação:
# Create credentials file with restricted permissionsecho"admin:password123"> ~/.proxy-creds
chmod600 ~/.proxy-creds
# Configure proxy without embedded credentialsexportHTTP_PROXY=http://proxy.company.com:8080Tecnologia
Configure seu servidor proxy pra ler as credenciais do arquivo ou use sistemas de autenticação externos.
Os proxies TLS criptografam todo o tráfego do proxy, incluindo as trocas de autenticação:
# HTTPS proxy encrypts credentials in transitexportHTTPS_PROXY=https://proxy.company.com:8443Tecnologia
Configure seu servidor proxy com certificados TLS adequados - sejam eles de uma CA ou certificados autoassinados distribuídos para as máquinas clientes.
A autenticação por certificado acaba com as senhas:
O proxy verifica os certificados dos clientes em vez de usar nome de usuário e senha. Os certificados podem ser cancelados um por um se forem comprometidos.
O gerenciamento de segredos do Kubernetes mantém as credenciais de proxy fora das imagens de contêiner:
Os segredos ficam criptografados em repouso e são injetados em tempo de execução sem aparecer nas camadas da imagem.
Bloqueie o acesso ao soquete e criptografe suas credenciais - seu futuro vai te agradecer.
Pensando em alternativas ao Docker para configurar seu proxy? Dá uma olhada no Docker e no Podman pra escolher a ferramenta de contêinerização certa pra você.
Resolução de problemas comuns
Problemas de proxy aparecem como tempos limite, falhas de conexão e erros de compilação misteriosos que funcionam bem fora da sua rede. Aqui está uma maneira legal de diagnosticar e resolver os problemas mais comuns do proxy do Docker.
Abordagem diagnóstica estruturada
Comece com o básico e vá avançando aos poucos.
Passo 1: Verifique a conexão do proxy a partir do host
Se isso não funcionar, tem algo errado com a configuração do seu proxy ou com o roteamento da sua rede. Fala com a galera da rede antes de tentar resolver os problemas do Docker.
Passo 2: Dá uma olhada nas configurações do proxy do daemon do Docker.
Dá uma olhada se o daemon tá lendo a configuração do seu proxy:
Isso isola se o problema está nas operações do Docker ou na rede do contêiner.
Problemas comuns e soluções
Problema: O tempo limite do docker pull expirou
Você vai ver esse erro quando o Docker não conseguir acessar registros externos:
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io: no such hostTecnologia
Comece testando a conectividade básica para ver onde tá o problema:
# Check if DNS resolution works through proxynslookup registry-1.docker.io
# Test direct registry accesscurl-I https://registry-1.docker.io/v2/
# Verify daemon proxy configurationsudo journalctl -u docker.service |grep-i proxyTecnologia
Resolva isso verificando a configuração do DNS e do proxy:
Adicionar servidores DNS a /etc/docker/daemon.json
Configurar NO_PROXY para servidores DNS internos
Verifique se o proxy suporta o método HTTPS CONNECT.
Problema: Falha na instalação do pacote durante a compilação
Os gerenciadores de pacotes dentro dos contêineres não conseguem acessar os repositórios, mostrando erros como este:
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy/ReleaseTecnologia
Teste a conexão do gerenciador de pacotes direto em um contêiner temporário:
# Test package manager connectivity in a running containerdocker run -it--rm python:3.13 bashapt-get update -o Debug::Acquire::http=trueTecnologia
A saída detalhada mostra exatamente onde a conexão falhou.
Resolva isso configurando os gerenciadores de pacotes pra usar seu proxy:
Configurar as definições do proxy do gerenciador de pacotes no Dockerfile
Passar argumentos de compilação proxy para a compilação do Docker
Verifique se o proxy bloqueia os domínios do repositório de pacotes.
Problema: O BuildKit não liga para as configurações de proxy
O BuildKit usa um jeito diferente de lidar com proxies do que o construtor antigo, causando erros como este:
failed to solve: failed to fetch remote https://github.com/user/repo.gitTecnologia
Teste se o problema é específico do BuildKit verificando a configuração do seu construtor:
Para sistemas que usam arquivos de log tradicionais, dá uma olhada direto no log do Docker:
# Direct log filesudotail-f /var/log/docker.logTecnologia
Procure por padrões específicos relacionados a proxy nos registros. Erros de conexão recusada indicam que o servidor proxy não está acessível. Falhas na autenticação aparecem como mensagens “407 Proxy Authentication Required” (Autenticação de proxy necessária). Erros de tempo limite indicam problemas de roteamento de rede ou sobrecarga do servidor proxy.
Testes em nível de contêiner com curl e wget te dão uma visão detalhada do comportamento do proxy.
Teste as conexões HTTP através do seu proxy para ver exatamente o que acontece durante o handshake:
# Test HTTP proxydocker run --rm\-eHTTP_PROXY=http://proxy.company.com:8080 \
python:3.13-slim \curl-v http://httpbin.org/ipTecnologia
A saída detalhada mostra a resolução DNS, o estabelecimento da conexão proxy e o fluxo real da solicitação HTTP. Você vai ver linhas tipo “Conectado a proxy.company.com” seguidas de “CONNECT httpbin.org:80” se o túnel proxy estiver funcionando direitinho.
As conexões HTTPS precisam que o proxy suporte o método CONNECT:
# Test HTTPS proxydocker run --rm\-eHTTPS_PROXY=http://proxy.company.com:8080 \
python:3.13-slim \curl-v https://httpbin.org/ipTecnologia
Fica de olho em “CONNECT httpbin.org:443 HTTP/1.1” na saída. Se você vir “Método não permitido” ou erros parecidos, seu proxy não aceita tunelamento HTTPS.
Teste a autenticação colocando as credenciais no URL do proxy:
# Test with authenticationdocker run --rm\-eHTTPS_PROXY=http://user:[email protected]:8080 \
python:3.13-slim \wget -O- https://httpbin.org/ipTecnologia
Falhas na autenticação aparecem como respostas “407 Proxy Authentication Required” (Autenticação de proxy necessária). A autenticação bem-sucedida vai direto para a solicitação de destino.
A depuração em nível de rede com o tcpdump captura os pacotes reais entre o Docker e o seu servidor proxy.
Execute o tcpdump para ver todo o tráfego que está indo pro seu proxy:
# Capture proxy trafficsudo tcpdump -i any host proxy.company.com and port 8080Tecnologia
Essa captura de pacotes brutos mostra as tentativas de conexão, a transferência de dados e o encerramento da conexão. Procure o estabelecimento da conexão TCP (pacotes SYN/ACK) seguido pelo tráfego HTTP. Os tempos limite de conexão aparecem como pacotes SYN repetidos sem resposta.
O teste de resolução DNS elimina uma fonte comum de confusão com proxies.
Muitos problemas de proxy são, na verdade, problemas de DNS disfarçados. Teste a resolução DNS dentro dos contêineres:
# Test DNS inside containers docker run --rm python:3.13-slim nslookup registry-1.docker.ioTecnologia
Se isso não funcionar, o contêiner não vai conseguir resolver nomes de domínio. Tenta usar um servidor DNS público pra isolar o problema:
# Test with custom DNSdocker run --dns8.8.8.8 --rm python:3.13-slim nslookup registry-1.docker.ioTecnologia
Os ambientes corporativos geralmente têm servidores DNS que só funcionam dentro da rede. Seu proxy pode precisar lidar com solicitações DNS, além do tráfego HTTP, ou talvez você precise configurar contêineres com servidores DNS específicos que funcionem através do seu proxy.
Trabalhe cada camada de forma sistemática e você vai achar a causa principal.
Procurando opções que possam lidar com proxies de maneira diferente? Temos um guia sobre alternativas ao Docker para você dar uma olhada no panorama completo das ferramentas de conteinerização em 2025.
Conclusão
A configuração do proxy do Docker não é só pra baixar imagens, mas também pra criar aplicativos em contêineres confiáveis e seguros em ambientes corporativos.
Mostrei como configurar as definições de proxy em quatro camadas diferentes: operações do cliente, processos daemon, tempo de execução do contêiner e operações de tempo de compilação. Cada camada tem uma função específica e precisa de uma configuração diferente, desde a importação de arquivos JSON e variáveis de ambiente até as configurações do gerenciador de pacotes e do BuildKit. Uma estratégia de proxy em camadas protege você contra pontos únicos de falha.
Quer saber mais sobre o Docker, a conteinerização e a segurança ? Dá uma olhada na nossa lista de cursos:
Cientista de dados sênior baseado na Croácia. Principal redator técnico com mais de 700 artigos publicados, gerando mais de 10 milhões de visualizações. Autor do livro Automação do aprendizado de máquina com TPOT.
Perguntas frequentes
Por que preciso de uma configuração de proxy para o Docker?⌄
As redes corporativas usam servidores proxy pra monitorar e filtrar o tráfego da Internet, o que bloqueia as conexões diretas do Docker com registros como o Docker Hub. Sem a configuração correta do proxy, você vai ver erros de tempo limite de conexão ao baixar imagens, falhas na instalação de pacotes e contêineres que não conseguem acessar serviços externos. As configurações do proxy do Docker encaminham todas essas conexões pelo servidor proxy da sua empresa, fazendo tudo funcionar direitinho atrás dos firewalls.
Qual é a diferença entre as configurações do proxy do daemon do Docker e do proxy do cliente?⌄
O daemon do Docker cuida de operações como puxar e enviar imagens para registros, enquanto o cliente do Docker gerencia comandos CLI e chamadas de API. Cada um precisa de uma configuração de proxy separada porque eles fazem tipos diferentes de solicitações de rede. Se alguma dessas configurações estiver faltando, vai rolar um problema: algumas operações do Docker vão funcionar, mas outras vão dar erro de conexão.
Os contêineres pegam as configurações de proxy do host automaticamente?⌄
Não, os contêineres não pegam as configurações de proxy do seu host por padrão. Você precisa passar explicitamente as variáveis de ambiente do proxy ao iniciar contêineres usando sinalizadores de --env, arquivos de ambiente ou configuração JSON. Esse isolamento significa que você pode rodar contêineres com diferentes configurações de proxy ou ignorar proxies completamente para aplicativos específicos.
Por que minha compilação do Docker falha mesmo quando a extração da imagem funciona bem?⌄
As compilações do Docker precisam que as configurações de proxy sejam passadas como argumentos de compilação, porque o processo de compilação rola isolado da sua configuração de cliente. Use --build-arg HTTP_PROXY=... ao executar docker build e declare esses argumentos no seu Dockerfile com instruções ARG. Os gerenciadores de pacotes dentro dos contêineres também precisam de seus próprios arquivos de configuração de proxy para baixar dependências.
Como faço para resolver problemas de proxy do BuildKit que não rolam com o construtor antigo?⌄
O BuildKit usa um jeito diferente de lidar com proxies e armazena contextos de compilação de forma agressiva, às vezes ignorando as mudanças de proxy. Tenta compilar com --no-cache para forçar a detecção de um novo proxy ou usa DOCKER_BUILDKIT=0 para desativar completamente o BuildKit. Se o problema continuar, dá uma olhada nas configurações de proxy específicas do BuildKit em /etc/buildkit/buildkitd.toml com as configurações do espelho do registro.
Descubra todo o seu potencial no Docker e na ciência de dados com o nosso guia completo. Dá uma olhada nas certificações, trilhas de aprendizagem e dicas práticas do Docker.
Saiba mais sobre a certificação e o exame AWS Certified Cloud Practitioner com nosso guia completo. Descubra dicas, recursos e estratégias para garantir que você tenha sucesso.
Saiba como instalar e configurar o banco de dados MySQL dentro de contêineres do Docker. O tutorial inclui conceitos como conexão com servidores MySQL, execução de clientes MySQL para conexão com contêineres e assim por diante.
Este guia completo ensina os fundamentos do desenvolvimento backend com Python. Aprenda conceitos básicos, frameworks e boas práticas para começar a criar aplicações web.
A maioria das redes corporativas usa servidores proxy pra monitorar e filtrar o tráfego da internet. Isso cria obstáculos quando o Docker tenta puxar imagens dos registros. Você vai ter problemas com tempo limite de conexão, erros de autenticação e compilações que não funcionam na sua rede doméstica. Esses problemas com proxy podem atrapalhar as equipes de desenvolvimento que não conseguem acessar as imagens básicas de que precisam.
A configuração do proxy do Docker resolve esses problemas de conectividade, melhorando o desempenho com cache e atendendo aos requisitos de segurança da empresa. Depois de configurados, seus contêineres vão puxar imagens independentemente das restrições de rede.
Neste tutorial, vou te mostrar como configurar as definições do proxy do daemon do Docker, as variáveis de ambiente do contêiner e como lidar com a configuração do proxy no Docker Compose.
Você é novo no Docker e tá se sentindo meio perdido com todos esses conceitos de rede? Comece com o básico do Docker e ganhe confiança passo a passo.
Entendendo a arquitetura do proxy do Docker
Diferentes partes do ecossistema Docker precisam de configuração de proxy em diferentes camadas.
Os proxies são tipo intermediários entre os seus componentes Docker e as redes externas. Quando o Docker precisa puxar imagens, os contêineres precisam de acesso à Internet ou as compilações exigem recursos externos, os servidores proxy controlam e monitoram essas conexões. Eles ficam entre suas aplicações em contêineres e o mundo exterior, filtrando solicitações e respostas.
As empresas usam proxies com o Docker pra melhorar o desempenho, a segurança e a conformidade.
O desempenho vem do armazenamento em cache de recursos acessados com frequência, como imagens básicas, reduzindo o tempo de download para toda a equipe. Os benefícios de segurança incluem filtragem de tráfego, verificação de malware e bloqueio de acesso a sites não autorizados. Os requisitos de conformidade exigem que todo o tráfego de rede passe por canais monitorados com controles de acesso adequados e registros de auditoria.
A configuração do proxy do Docker rola em quatro camadas:
Proxy do cliente: afeta comandos da CLI do Docker, como
docker pulledocker pushProxy do daemon: controla como o daemon do Docker acessa registros externos
Proxy de tempo de execução do contêiner: define variáveis proxy para aplicativos dentro de contêineres
Proxy de tempo de compilação: cuida das configurações de proxy durante as operações de “
docker build” quando os Dockerfiles precisam de acesso à Internet.Cada camada tem uma função e precisa de uma configuração diferente.
Pra entender como funciona a rede do Docker, primeiro é preciso saber como os contêineres se comunicam.
Configurando o Docker para usar um proxy
Pra fazer o Docker funcionar com o proxy da sua empresa, você precisa configurar tanto o daemon quanto o cliente do Docker.
Por quê? Porque eles lidam com diferentes tipos de solicitações de rede.
O daemon cuida de puxar e enviar imagens e autenticar o registro, enquanto o cliente dá conta das operações da CLI e das chamadas da API. Se alguma dessas configurações estiver faltando, vai ter lacunas que podem fazer com que as operações do Docker falhem com erros de conexão.
Como configurar o daemon do Docker
O daemon do Docker lê as configurações de proxy em
/etc/docker/daemon.json. Crie esse arquivo se ele não existir:O campo “
noProxy” tem os endereços que não precisam passar pelo proxy. Inclua aqui os domínios do seu registro interno e os endereços localhost.Configurando substituições do serviço systemd
Em sistemas Linux baseados em systemd, você também precisa configurar o próprio serviço Docker para usar o proxy. Crie o diretório de substituição e o arquivo de configuração:
Depois, coloca essas variáveis de ambiente no arquivo
http-proxy.conf:Isso garante que o próprio processo do daemon do Docker consiga acessar serviços externos através do seu proxy.
O Docker não vai pegar as mudanças no proxy até você reiniciar o daemon. Execute esses comandos para recarregar o systemd e reiniciar o Docker:
O comando “daemon reload” diz ao systemd para ler a nova configuração do serviço, enquanto o comando “docker restart” aplica as alterações no arquivo “
daemon.json”.Coisas específicas da plataforma
O Docker Desktop lida com a configuração de proxy de maneira diferente das instalações em servidor. No Windows e no macOS, use a interface gráfica do Docker Desktop para definir as configurações de proxy na seção Recursos - Proxies. Essas configurações ajustam automaticamente tanto o daemon quanto o cliente.
Os hosts Linux que usam o Docker Engine precisam da configuração manual descrita acima. Algumas distribuições empacotam o Docker de forma diferente, então dá uma olhada se o seu sistema usa o
dockerddireto ou através de um gerenciador de serviços diferente.Verificando sua configuração
Teste se o Docker consegue acessar registros externos com um comando pull simples:
Você também pode conferir a configuração do daemon:
Isso mostra se o Docker detectou e aplicou suas configurações de proxy.
Se ainda assim não funcionar, dá uma olhada nos logs do seu servidor proxy pra confirmar se o Docker tá encaminhando as solicitações direitinho.
Problemas de rede te deixaram preso? Exponha as portas do Docker da maneira certa pra evitar problemas de conexão.
Configurando variáveis de ambiente proxy
Os comandos da CLI do Docker precisam de uma configuração de proxy separada das configurações do daemon. As variáveis de ambiente oferecem controle flexível sobre como os clientes Docker se conectam por meio de proxies corporativos.
Os proxies do cliente controlam as operações da CLI do Docker, como
docker pull,docker pushedocker login. Quando você executa esses comandos, o cliente Docker faz solicitações HTTP para registros e precisa saber qual servidor proxy usar. Sem as configurações de proxy do cliente, essas operações falham mesmo quando o daemon está configurado corretamente.Método de configuração JSON
A maneira mais simples é usar o arquivo de configuração do Docker em
~/.docker/config.json:Esse método mantém as configurações de proxy dentro da configuração do Docker e não afeta outros aplicativos no seu sistema.
Alternativa à variável de ambiente
Você também pode definir variáveis de ambiente proxy padrão que o Docker vai detectar automaticamente usando esses comandos:
Essas variáveis funcionam para qualquer aplicativo que respeite os padrões de proxy, não só o Docker.
Configuração global vs. por usuário
Para configurar em todo o sistema, adicione as variáveis de ambiente em
/etc/environmentou crie um script em/etc/profile.d/:Para configurar por usuário, adicione-os ao seu perfil shell (
~/.bashrc,~/.zshrc) ou use o método de configuração JSON. As configurações por usuário dão aos desenvolvedores a flexibilidade de usar proxies diferentes ou ignorá-los completamente para testes.Considerações de segurança
Nunca coloque nomes de usuário e senhas em arquivos de configuração ou variáveis de ambiente.
As credenciais de proxy em texto simples podem ser um risco de segurança, principalmente em ambientes compartilhados ou sistemas de controle de versão.
Em vez disso, use estas abordagens:
Se você precisar incluir credenciais, use o formato
http://username:[email protected]:8080, mas guarde-as em arquivos protegidos com permissões restritas.Configuração do proxy na hora da compilação
As compilações do Docker precisam que as configurações de proxy sejam passadas explicitamente por meio de argumentos de compilação:
Os argumentos de compilação viram variáveis de ambiente dentro do contexto de compilação.
Isso permite que as instruções “
RUN” baixem pacotes e dependências através do seu proxy. Sem esses argumentos, as compilações falham quando os Dockerfiles tentam instalar software ou buscar recursos da Internet.As configurações de proxy de tempo de compilação não ficam na imagem final, a menos que você as defina explicitamente com instruções
ENVno seu Dockerfile.As variáveis de ambiente oferecem flexibilidade para lidar com as configurações de proxy no nível certo para o seu fluxo de trabalho.
Você acha as discussões sobre compilação confusas? Domine os argumentos de compilação do Docker com exemplos reais que realmente funcionam.
Injeção de proxy em contêiner e em tempo de compilação
A configuração do cliente Docker só te leva até a metade do caminho — seus contêineres e compilações precisam de suas próprias configurações de proxy. Nesta seção, vou mostrar como injetar a configuração do proxy em tempo de execução e em tempo de compilação.
Variáveis de ambiente de tempo de execução
Os contêineres não pegam as configurações de proxy do seu host.
Você precisa passar variáveis proxy explicitamente ao iniciar contêineres. O Docker oferece várias maneiras de fazer isso, dependendo se você quer configurar todos os contêineres ou só alguns específicos.
A configuração JSON é a maneira mais simples de definir proxy de forma consistente, como falamos antes. Para recapitular, adicione isso ao seu arquivo
~/.docker/config.json:O Docker coloca essas variáveis automaticamente em todos os contêineres que você inicia. Não precisa de sinalização extra.
Os sinalizadores CLI te dão mais controle por contêiner:
Você também pode passar um arquivo de ambiente inteiro:
Os contêineres já existentes podem receber variáveis proxy depois de começarem a funcionar usando
docker exec:Essa abordagem funciona para comandos únicos, mas não continua depois que o contêiner é reiniciado.
Configuração do proxy na hora da compilação
A criação de imagens falha em ambientes proxy, a menos que você passe explicitamente as configurações de proxy.
Os argumentos de compilação são a maneira padrão de colocar variáveis proxy durante as compilações:
Seu Dockerfile precisa declarar esses argumentos para usá-los:
As declarações do Dockerfile permitem definir valores padrão para o proxy:
A instrução `
ENV` deixa as variáveis proxy disponíveis para todos os comandos `RUN` que vêm depois na sua compilação.É bom saber que as limitações do BuildKit podem causar problemas de proxy com versões mais recentes do Docker. O BuildKit armazena contextos de compilação de forma agressiva, o que às vezes ignora alterações no proxy.
Você pode forçar o BuildKit a reconhecer atualizações de proxy:
Ou você pode desativar o BuildKit completamente para compilações sensíveis a proxy:
Quando se trata de compilações em várias etapas, é preciso ter uma configuração de proxy consistente em todas as etapas:
Cada etapa pega os argumentos de compilação, mas não as variáveis de ambiente das etapas anteriores. Defina as variáveis proxy explicitamente em todas as etapas que precisarem delas.
Resumindo: configura uma vez, usa em todo o lado.
Tá confuso sobre ENTRYPOINT e CMD nos seus contêineres habilitados para proxy? Veja tudo detalhadamente com exemplos práticos.
Configurando gerenciadores de pacotes para usar um proxy em contêineres
As configurações de proxy do Docker não são automaticamente transferidas para os gerenciadores de pacotes dentro dos seus contêineres. Você precisa configurar cada gerenciador de pacotes separadamente para baixar pacotes através do proxy da sua empresa.
Gerenciadores de pacotes como
apt-get,yumeapkfazem conexões HTTP diretas com repositórios de pacotes. Em redes com restrições, essas conexões não funcionam a menos que o gerenciador de pacotes saiba sobre o seu servidor proxy.As variáveis de ambiente padrão não são suficientes. A maioria dos gerenciadores de pacotes tem seus próprios arquivos de configuração que substituem as configurações de proxy do sistema.
Ubuntu/Debian: configuração do apt-get
Crie um arquivo de configuração de proxy que o
apt-getvai ler durante a instalação do pacote.Adicione isso ao seu Dockerfile:
O arquivo “
/etc/apt/apt.conf.d/proxy.conf” diz ao “apt-get” para passar todos os downloads de pacotes pelo seu proxy. O arquivo continua lá mesmo depois de você usar o comando “RUN” na sua compilação.Você também pode definir exclusões de proxy para repositórios internos:
Alpine Linux: configuração do apk
O Alpine usa o gerenciador de pacotes
apk, que lê as configurações de proxy em/etc/apk/repositoriese nas variáveis de ambiente.apkO Alpine respeita as variáveis de ambiente padrão do proxy HTTP, então você não precisa de arquivos de configuração separados. Mas você pode criar um pra ter mais controle:CentOS/RHEL: configuração do yum
Os sistemas CentOS e RHEL usam
yumoudnf, que leem as configurações de proxy em/etc/yum.conf.Para versões mais recentes do CentOS que usam o gerenciador de pacotes
dnf, use o seguinte:Você também pode excluir domínios específicos do roteamento do proxy adicionando este comando:
Testando a funcionalidade do proxy
Primeiro, você precisa verificar se o seu gerenciador de pacotes consegue acessar os repositórios através do proxy.
Adicione comandos de teste ao seu Dockerfile:
A bandeira `
--dry-run` testa a resolução do pacote sem realmente instalar nada. Se der certo, a configuração do seu proxy tá funcionando.Você também pode testar com saída detalhada para depurar problemas de conexão:
Isso mostra exatamente quais URLs o
apt-gettenta acessar e se as conexões proxy funcionam.Para testes alpinos, use o seguinte:
Resumindo, configure cada gerenciador de pacotes individualmente e suas compilações funcionarão atrás de qualquer proxy.
Precisa limpar artefatos de compilação relacionados ao proxy? Os comandos prune do Docker vão liberar espaço e manter seu sistema limpo.
Implementações avançadas de proxy
Os proxies HTTP básicos são bons pra começar, mas os ambientes de produção precisam de mais controle sobre o acesso ao registro e o cache de imagens. Veja como configurar proxies de cache e espelhos de registro para melhorar o desempenho e a confiabilidade.
Registros de proxy de cache
Puxar as mesmas imagens base várias vezes desperdiça largura de banda e deixa as compilações mais lentas.
Os proxies de cache ficam entre seus clientes Docker e registros externos, como o Docker Hub. Eles guardam as imagens que você usa mais no seu computador, então, da próxima vez que você precisar delas, elas vão aparecer na sua rede interna, em vez de ter que pegar da internet.
A escolha mais popular para ambientes empresariais é o Harbor:
Você pode configurar o Harbor como um cache proxy editando
harbor.yml:Se você precisa de uma alternativa mais simples para o cache básico, use o Docker Registry Proxy. Veja como:
Depois, aponte seus clientes Docker para o proxy de cache:
Aqui estão todos os benefícios que você ganha com proxies de cache:
Espelhos de registro e BuildKit
Os espelhos de registro permitem redirecionar as solicitações de imagens para registros internos ou geograficamente mais próximos.
A configuração de espelho único direciona todas as solicitações do Docker Hub por meio de um espelho:
Adicione isso a
/etc/docker/daemon.jsone reinicie o Docker. Todos os comandos “docker pull” vão tentar o espelho primeiro e, se ele não estiver disponível, vão tentar o Docker Hub.Vários espelhos garantem redundância:
O Docker vai tentar os espelhos em ordem até que um funcione.
A configuração do espelho do BuildKit precisa de uma configuração separada porque o BuildKit ignora algumas configurações do daemon:
Você pode começar o BuildKit com a configuração personalizada:
Ou use a configuração de espelho embutido do BuildKit:
Por fim, teste a configuração do espelho criando uma imagem que puxe do Docker Hub:
A bandeira `
--progress=plain` mostra qual registro o BuildKit realmente entra em contato. Você deve ver os URLs do espelho na saída da compilação.É isso aí!
Está lidando com configurações complexas de proxy com vários contêineres? O Docker Compose facilita a conexão em rede e a descoberta de serviços.
Reforço da segurança
As configurações de proxy abrem novas possibilidades de ataque que precisam de muita atenção. Veja como bloquear o acesso ao soquete do Docker e proteger as credenciais do proxy contra exposição.
Proxy de socket do Docker
Expor o socket do Docker diretamente cria um risco enorme de segurança.
O soquete do Docker (
/var/run/docker.sock) dá acesso de nível raiz a todo o seu sistema host. Qualquer processo que possa gravar nesse soquete pode criar contêineres com acesso ao sistema de arquivos do host, aumentar privilégios ou sair completamente do isolamento do contêiner.A montagem direta na tomada é perigosa:
Esse padrão aparece em configurações Docker-in-Docker e pipelines CI/CD, mas é um pesadelo para a segurança. Um contêiner comprometido pode controlar todo o daemon do Docker.
Os serviços de proxy de soquete criam uma camada intermediária mais segura. Eles filtram as chamadas da API do Docker e limitam o que os contêineres podem realmente fazer.
Use o docker-socket-proxy da Tecnativa:
O proxy só mostra pontos finais específicos da API do Docker. Defina as variáveis de ambiente como
1para operações permitidas e0para as bloqueadas.As suas aplicações conectam-se ao proxy em vez de ao socket bruto:
Aqui estão algumas estratégias adicionais para fortalecer os soquetes:
Gerenciamento de credenciais
As credenciais de proxy em URLs de texto simples aparecem em todo o lado - registos, listas de processos, dumps de ambiente.
Nunca coloque credenciais em URLs proxy:
Qualquer pessoa com acesso a
ps auxou dumps de variáveis de ambiente pode ver a sua senha de proxy. Isso inclui registros de aplicativos, inspeção de contêineres e ferramentas de monitoramento do sistema.Em vez disso, use arquivos de autenticação:
Configure seu servidor proxy pra ler as credenciais do arquivo ou use sistemas de autenticação externos.
Os proxies TLS criptografam todo o tráfego do proxy, incluindo as trocas de autenticação:
Configure seu servidor proxy com certificados TLS adequados - sejam eles de uma CA ou certificados autoassinados distribuídos para as máquinas clientes.
A autenticação por certificado acaba com as senhas:
O proxy verifica os certificados dos clientes em vez de usar nome de usuário e senha. Os certificados podem ser cancelados um por um se forem comprometidos.
O gerenciamento de segredos do Kubernetes mantém as credenciais de proxy fora das imagens de contêiner:
Os segredos ficam criptografados em repouso e são injetados em tempo de execução sem aparecer nas camadas da imagem.
Bloqueie o acesso ao soquete e criptografe suas credenciais - seu futuro vai te agradecer.
Pensando em alternativas ao Docker para configurar seu proxy? Dá uma olhada no Docker e no Podman pra escolher a ferramenta de contêinerização certa pra você.
Resolução de problemas comuns
Problemas de proxy aparecem como tempos limite, falhas de conexão e erros de compilação misteriosos que funcionam bem fora da sua rede. Aqui está uma maneira legal de diagnosticar e resolver os problemas mais comuns do proxy do Docker.
Abordagem diagnóstica estruturada
Comece com o básico e vá avançando aos poucos.
Passo 1: Verifique a conexão do proxy a partir do host
Teste se o seu servidor proxy está acessível:
Se isso não funcionar, tem algo errado com a configuração do seu proxy ou com o roteamento da sua rede. Fala com a galera da rede antes de tentar resolver os problemas do Docker.
Passo 2: Dá uma olhada nas configurações do proxy do daemon do Docker.
Dá uma olhada se o daemon tá lendo a configuração do seu proxy:
Você deve ver suas URLs proxy listadas. Se não estiverem lá, dá uma olhada em
/etc/docker/daemon.jsone reinicia o serviço Docker.Passo 3: Teste as operações do cliente Docker
Tenta baixar uma imagem simples:
Sucesso significa que as configurações de proxy do seu cliente estão funcionando. Falha indica problemas no proxy no nível do daemon.
Passo 4: Teste a conectividade no nível do contêiner
Execute um contêiner e teste as conexões de saída:
Isso isola se o problema está nas operações do Docker ou na rede do contêiner.
Problemas comuns e soluções
Problema: O tempo limite do
docker pullexpirouVocê vai ver esse erro quando o Docker não conseguir acessar registros externos:
Comece testando a conectividade básica para ver onde tá o problema:
Resolva isso verificando a configuração do DNS e do proxy:
Adicionar servidores DNS a
/etc/docker/daemon.jsonConfigurar
NO_PROXYpara servidores DNS internosVerifique se o proxy suporta o método HTTPS CONNECT.
Problema: Falha na instalação do pacote durante a compilação
Os gerenciadores de pacotes dentro dos contêineres não conseguem acessar os repositórios, mostrando erros como este:
Teste a conexão do gerenciador de pacotes direto em um contêiner temporário:
A saída detalhada mostra exatamente onde a conexão falhou.
Resolva isso configurando os gerenciadores de pacotes pra usar seu proxy:
Problema: O BuildKit não liga para as configurações de proxy
O BuildKit usa um jeito diferente de lidar com proxies do que o construtor antigo, causando erros como este:
Teste se o problema é específico do BuildKit verificando a configuração do seu construtor:
Se o criador de legado funcionar, você tem um problema de configuração do proxy BuildKit.
Resolva os problemas de proxy do BuildKit com estas abordagens:
buildkitd.toml--build-argpara passar variáveis proxy explicitamenteProblema: O contêiner não consegue acessar serviços externos
A sua aplicação dentro do contêiner não consegue se conectar às APIs externas:
Tenta resolver isso testando a conexão de dentro do contêiner:
Isso mostra se as variáveis proxy estão presentes e se a tentativa de conexão deu certo.
Resolva os problemas de conectividade do contêiner garantindo que o proxy esteja configurado corretamente:
Análise de registros e testes de conectividade
Os logs do daemon do Docker mostram tudo sobre as negociações e falhas do proxy.
Em sistemas baseados em systemd, use
journalctlpara acompanhar os logs do serviço Docker em tempo real:Para sistemas que usam arquivos de log tradicionais, dá uma olhada direto no log do Docker:
Procure por padrões específicos relacionados a proxy nos registros. Erros de conexão recusada indicam que o servidor proxy não está acessível. Falhas na autenticação aparecem como mensagens “407 Proxy Authentication Required” (Autenticação de proxy necessária). Erros de tempo limite indicam problemas de roteamento de rede ou sobrecarga do servidor proxy.
Testes em nível de contêiner com curl e wget te dão uma visão detalhada do comportamento do proxy.
Teste as conexões HTTP através do seu proxy para ver exatamente o que acontece durante o handshake:
A saída detalhada mostra a resolução DNS, o estabelecimento da conexão proxy e o fluxo real da solicitação HTTP. Você vai ver linhas tipo “Conectado a proxy.company.com” seguidas de “CONNECT httpbin.org:80” se o túnel proxy estiver funcionando direitinho.
As conexões HTTPS precisam que o proxy suporte o método CONNECT:
Fica de olho em “CONNECT httpbin.org:443 HTTP/1.1” na saída. Se você vir “Método não permitido” ou erros parecidos, seu proxy não aceita tunelamento HTTPS.
Teste a autenticação colocando as credenciais no URL do proxy:
Falhas na autenticação aparecem como respostas “407 Proxy Authentication Required” (Autenticação de proxy necessária). A autenticação bem-sucedida vai direto para a solicitação de destino.
A depuração em nível de rede com o tcpdump captura os pacotes reais entre o Docker e o seu servidor proxy.
Execute o tcpdump para ver todo o tráfego que está indo pro seu proxy:
Essa captura de pacotes brutos mostra as tentativas de conexão, a transferência de dados e o encerramento da conexão. Procure o estabelecimento da conexão TCP (pacotes SYN/ACK) seguido pelo tráfego HTTP. Os tempos limite de conexão aparecem como pacotes SYN repetidos sem resposta.
O teste de resolução DNS elimina uma fonte comum de confusão com proxies.
Muitos problemas de proxy são, na verdade, problemas de DNS disfarçados. Teste a resolução DNS dentro dos contêineres:
Se isso não funcionar, o contêiner não vai conseguir resolver nomes de domínio. Tenta usar um servidor DNS público pra isolar o problema:
Os ambientes corporativos geralmente têm servidores DNS que só funcionam dentro da rede. Seu proxy pode precisar lidar com solicitações DNS, além do tráfego HTTP, ou talvez você precise configurar contêineres com servidores DNS específicos que funcionem através do seu proxy.
Trabalhe cada camada de forma sistemática e você vai achar a causa principal.
Procurando opções que possam lidar com proxies de maneira diferente? Temos um guia sobre alternativas ao Docker para você dar uma olhada no panorama completo das ferramentas de conteinerização em 2025.
Conclusão
A configuração do proxy do Docker não é só pra baixar imagens, mas também pra criar aplicativos em contêineres confiáveis e seguros em ambientes corporativos.
Mostrei como configurar as definições de proxy em quatro camadas diferentes: operações do cliente, processos daemon, tempo de execução do contêiner e operações de tempo de compilação. Cada camada tem uma função específica e precisa de uma configuração diferente, desde a importação de arquivos JSON e variáveis de ambiente até as configurações do gerenciador de pacotes e do BuildKit. Uma estratégia de proxy em camadas protege você contra pontos únicos de falha.
Quer saber mais sobre o Docker, a conteinerização e a segurança ? Dá uma olhada na nossa lista de cursos: