Alternar tema

Guia de mirrors do Docker na China em 2026: resolva o timeout no pull em 5 minutos

Easton editorial illustration: container packing dock

Atualização de 2026-06: este artigo foi recalibrado com base na documentação oficial do Docker sobre limites de uso do Docker Hub e pull-through cache. A recomendação atual já não é apostar cegamente em um único mirror público. Primeiro identifique a camada de rede e, então, escolha entre um mirror comunitário, um proxy HTTP e um cache na rede interna da empresa. Há ainda uma mudança fácil de ignorar: desde 1º de abril de 2025, o Docker Hub aplica limites de taxa aos pulls — 10 por hora para cada IP sem login e 100 por hora após o login em uma conta gratuita. Portanto, se a falha for um erro 429, e não um timeout, faça primeiro docker login em vez de correr para trocar de mirror.

Na sexta-feira passada, às três da tarde, fiquei olhando para o comando docker pull nginx:latest no terminal. O cursor piscou por dez minutos inteiros antes de devolver um enorme i/o timeout em vermelho. Para ser sincero, não foi a primeira vez. Desde junho daquele ano, isso vinha acontecendo com cada vez mais frequência: a internet parecia normal, as páginas abriam rapidamente no navegador, mas as imagens do Docker simplesmente não eram baixadas.

Depois de consultar vários tutoriais, percebi que os mirrors recomendados da Alibaba Cloud e da NetEase continuavam sem funcionar mesmo após a configuração. Só mais tarde descobri que, em 6 de junho de 2024, quase todos os aceleradores de imagens do Docker na China deixaram de operar: serviços da Alibaba Cloud, Tencent Cloud, Baidu Cloud e de várias universidades foram encerrados ou passaram a aceitar apenas acessos pelas respectivas redes internas.

Talvez você também conheça esta sensação: encontrar vários tutoriais de 2023 que prometem uma “solução perfeita para downloads lentos de imagens do Docker”, configurar o daemon.json conforme as instruções, reiniciar o Docker e executar docker pull novamente cheio de esperança — para receber outro timeout. É realmente frustrante.

A boa notícia é que alguns mirrors mantidos pela comunidade continuam ativos e funcionaram nos meus testes. Neste artigo, mostro quais mirrors do Docker ainda estavam disponíveis em dezembro de 2025, como configurar o daemon.json e como investigar os problemas mais comuns. Vamos direto ao ponto.

Por que tantos mirrors do Docker deixaram de funcionar?

Antes de falar das soluções, vale explicar o que aconteceu. Afinal, um mirror da Alibaba Cloud que funcionava bem não ficaria indisponível do nada.

O dia 6 de junho de 2024 foi um divisor de águas. A partir dessa data, quase todos os principais serviços de aceleração de imagens do Docker Hub na China anunciaram o encerramento ou a restrição do acesso. Os mirrors de gigantes como Alibaba Cloud, NetEase, Tencent Cloud e Baidu Cloud praticamente deixaram de funcionar da noite para o dia. Serviços mantidos por universidades, como a Universidade de Nanjing, a Universidade Jiao Tong de Xangai e a Universidade de Ciência e Tecnologia da China, também foram desativados ou passaram a aceitar apenas acessos da rede do campus.

Para ser sincero, fiquei bastante surpreso quando vi a notícia. Esses mirrors vinham sendo usados havia anos e, de repente, desapareceram. Mais tarde, entendi que havia uma combinação de pressão regulatória e custos: de um lado, questões de conformidade; de outro, o custo considerável de manter um serviço de aceleração altamente disponível.

Hoje, ao acessar esses endereços antigos, você provavelmente recebe um erro 404 ou um timeout de conexão. Se o seu daemon.json ainda contém registry.cn-hangzhou.aliyuncs.com ou hub-mirror.c.163.com, essa configuração, na prática, não serve para nada.

E a conexão direta com o Docker Hub? Tecnicamente, ela é possível. Mas, nas condições de rede da China, o acesso direto pode ser extremamente lento. Baixar uma imagem de algumas centenas de megabytes pode levar mais de meia hora, e timeouts são frequentes.

Mirrors que ainda funcionavam em dezembro de 2025

Não se preocupe. Embora os serviços das grandes empresas tenham saído do ar, algumas comunidades e pessoas continuam mantendo gratuitamente aceleradores de imagens do Docker. Testei várias opções e reuni abaixo os mirrors que ainda funcionavam em dezembro de 2025.

Lista de mirrors disponíveis

Nome do mirrorEndereçoObservação
Xuanyuan Mirror (gratuito)https://docker.xuanyuan.meMantido pela comunidade, gratuito e com bom tempo de resposta
Xuanyuan Mirror (profissional)https://xuanyuan.cloudExige login e oferece uma velocidade mais estável
DaoCloudhttps://docker.m.daocloud.ioMirror tradicional e relativamente estável
1ms.runhttps://docker.1ms.runMantido pela comunidade
1panelhttps://docker.1panel.liveMantido pela comunidade
rat.devhttps://hub.rat.devMantido pela comunidade
aigc2dhttps://docker-mirror.aigc2d.comMantido pela comunidade

Minha principal recomendação: nos meus testes, Xuanyuan Mirror e DaoCloud foram relativamente estáveis. A versão gratuita do Xuanyuan, em docker.xuanyuan.me, já ofereceu uma boa velocidade. Se você precisar de um serviço mais estável, pode testar a versão profissional mediante cadastro.

Alguns cuidados ao usar esses serviços

  1. Todos eles são mantidos pela comunidade com recursos próprios. Ao contrário dos antigos serviços da Alibaba Cloud e da Tencent Cloud, não contam com o respaldo de uma grande empresa e podem sair do ar a qualquer momento. Use-os com responsabilidade e não abuse.

  2. Nem todas as imagens são aceleradas. Alguns mirrors oferecem apenas imagens-base populares, como nginx, mysql e redis, ou impõem uma lista de permissões. Se uma imagem pouco conhecida apresentar timeout, isso não significa necessariamente que o mirror esteja com problema. Tente outro mirror ou uma conexão direta com o Docker Hub.

  3. Configure vários mirrors. O daemon.json aceita vários registry-mirrors, e o Docker os tentará em sequência. Se o primeiro falhar, ele poderá recorrer automaticamente ao segundo, aumentando a chance de sucesso.

Esses endereços foram encontrados no projeto dongyubin/DockerHub no GitHub. O repositório atualiza continuamente a lista de mirrors disponíveis, por isso vale a pena salvá-lo nos favoritos.

Como configurar o arquivo daemon.json passo a passo

Com os endereços dos mirrors em mãos, chega a hora da configuração. O processo é simples: altere um arquivo JSON e reinicie o serviço do Docker. Veja como fazer isso nos três principais sistemas.

Linux, o caso mais comum

A maioria dos servidores e das máquinas de desenvolvimento usa Linux, por isso este é o cenário mais importante.

1. Crie ou edite o arquivo de configuração

O arquivo fica em /etc/docker/daemon.json. Se ele não existir, crie-o.

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

2. Adicione a configuração

Copie o JSON abaixo. Incluí três mirrors como alternativas:

{
  "registry-mirrors": [
    "https://docker.xuanyuan.me",
    "https://docker.m.daocloud.io",
    "https://docker.1ms.run"
  ]
}

Salve e saia. No editor vi, pressione ESC, digite :wq e pressione Enter.

3. Reinicie o serviço do Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

O primeiro comando recarrega a configuração do systemd; o segundo reinicia o Docker. É necessário executar os dois para que a configuração entre em vigor.

macOS com Docker Desktop

No Mac, o Docker Desktop oferece uma interface gráfica para essa configuração, o que torna o processo mais simples.

1. Abra as configurações do Docker Desktop

Clique no ícone do Docker na barra de menus e selecione Settings, ou Preferences.

2. Abra a configuração do Docker Engine

No menu à esquerda, selecione Docker Engine. Você verá um editor de JSON.

3. Altere a configuração JSON

Adicione o campo registry-mirrors ao JSON. Se já houver outras configurações, lembre-se de incluir a vírgula necessária:

{
  "registry-mirrors": [
    "https://docker.xuanyuan.me",
    "https://docker.m.daocloud.io"
  ],
  "outras configurações existentes": "mantenha sem alterações"
}

4. Aplique e reinicie

Clique no botão Apply & Restart, no canto inferior direito. O Docker será reiniciado e aplicará automaticamente a configuração.

Windows com Docker Desktop

No Windows, o procedimento é praticamente igual ao do macOS e também usa a interface gráfica do Docker Desktop.

1. Abra as configurações

Clique com o botão direito no ícone do Docker na barra de tarefas e selecione Settings.

2. Acesse o Docker Engine

No menu à esquerda, selecione Docker Engine.

3. Altere a configuração JSON

Adicione o campo registry-mirrors, com a mesma configuração usada no macOS.

4. Aplique e reinicie

Clique em Apply & Restart e aguarde a reinicialização do Docker.

Cuidados com a configuração

  • O formato JSON precisa estar correto. O erro mais comum é incluir ou esquecer uma vírgula. Vale validar o formato em uma ferramenta própria para JSON.
  • Não configure mirrors que já deixaram de funcionar. Se o seu daemon.json ainda contém endereços da Alibaba Cloud ou da NetEase, remova-os, pois já não funcionam.
  • Inclua algumas alternativas. Como um único mirror pode ser instável, configurar duas ou três opções aumenta a chance de sucesso.

Como verificar se a configuração entrou em vigor

Depois de configurar, não comece imediatamente a baixar imagens. Primeiro confira se a alteração entrou em vigor. Assim, se houver algum erro, você poderá corrigi-lo antes de continuar.

Método 1: consulte com docker info

A forma mais rápida de verificar é executar docker info e localizar a linha Registry Mirrors.

docker info | grep -A 5 "Registry Mirrors"

Se a configuração estiver correta, você verá uma saída semelhante a esta:

Registry Mirrors:
  https://docker.xuanyuan.me/
  https://docker.m.daocloud.io/
  https://docker.1ms.run/

Os endereços configurados aparecem na saída? Se sim, a configuração já está ativa. Caso contrário, confira o formato do daemon.json e verifique se o serviço do Docker foi reiniciado.

Método 2: teste baixando uma imagem

Não basta olhar a configuração. Baixe uma imagem de verdade para avaliar a velocidade.

docker pull nginx:latest

O nginx é uma boa opção porque é uma das imagens-base mais usadas e está disponível em praticamente todos os mirrors.

Se tudo estiver funcionando, você verá o progresso avançar e o download terminará em dezenas de segundos. A imagem do nginx tem pouco mais de 100 MB. Em comparação com um timeout depois de dez minutos, a diferença é enorme.

No meu teste, o Xuanyuan Mirror levou menos de 30 segundos para baixar o nginx de 0 a 100%, um resultado bastante bom.

E se continuar muito lento?

Se a velocidade continuar baixa ou ainda ocorrer um timeout, não se preocupe. Confira a seção de diagnóstico abaixo.

Diagnóstico de problemas comuns

Mesmo com uma configuração correta, alguns problemas estranhos ainda podem surgir. Reuni aqui os contratempos que encontrei e as respectivas soluções para ajudar você a economizar tempo.

Problema 1: os mirrors não aparecem no docker info

Sintoma: o comando docker info | grep "Registry Mirrors" não mostra nada ou exibe uma lista vazia.

Possíveis causas e soluções:

  1. Erro de formato no daemon.json — esta é a causa mais comum. O JSON é rigoroso: uma vírgula ou aspas a mais ou a menos já invalidam o arquivo.

    • Solução: use uma ferramenta como JSONLint para conferir o formato do daemon.json.
    • Erros comuns: vírgula depois do último item de um array ou chave de fechamento ausente.
  2. O serviço do Docker não foi reiniciado — as mudanças no arquivo de configuração só entram em vigor após a reinicialização.

    • Solução: no Linux, execute sudo systemctl restart docker. No Docker Desktop, clique em Apply & Restart.
  3. Problema de permissão no arquivo — se as permissões do daemon.json estiverem incorretas, o Docker não conseguirá lê-lo.

    • Solução: execute sudo chmod 644 /etc/docker/daemon.json para ajustar as permissões.

Problema 2: o timeout continua depois da configuração

Sintoma: o docker info confirma a configuração dos mirrors, mas o docker pull ainda expira.

Possíveis causas e soluções:

  1. A imagem não está na lista permitida pelo acelerador — como já vimos, nem todas as imagens podem ser aceleradas.

    • Solução: teste uma imagem popular, como nginx ou redis. Se o download funcionar, a configuração está correta; tente outro mirror ou use um proxy para a outra imagem.
  2. O mirror está temporariamente indisponível — serviços mantidos pela comunidade podem ficar fora do ar durante manutenção ou em períodos de tráfego intenso.

    • Solução: configure vários mirrors no daemon.json para que o Docker possa recorrer a outra opção. Você também pode aguardar e tentar novamente.
  3. Problema na rede local — firewall, configurações de proxy e resolução DNS também podem causar falhas.

    • Solução: execute ping docker.xuanyuan.me para verificar a conectividade e confira as regras do firewall.

Problema 3: o serviço do Docker não reinicia

Sintoma: depois de executar systemctl restart docker, aparece um erro e o Docker não inicia.

Possíveis causas e soluções:

  1. Um erro no daemon.json impediu a inicialização do Docker — um JSON inválido faz o serviço falhar ao iniciar.
    • Solução: consulte os logs do Docker com journalctl -u docker.service e localize a mensagem de erro.
    • Medida emergencial: renomeie ou remova temporariamente o daemon.json, reinicie o Docker para restaurar o serviço e depois investigue a configuração com calma.
sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak
sudo systemctl restart docker

Problema 4: algumas imagens específicas não são baixadas

Sintoma: imagens populares, como nginx e redis, funcionam, mas uma imagem privada de algum projeto ou uma imagem hospedada em outro registry não é baixada.

Soluções:

  • Os aceleradores funcionam apenas para imagens públicas do Docker Hub. Se a imagem estiver em um registry privado, como gcr.io ou quay.io, o acelerador não ajudará.
  • Nesse caso, considere estas opções:
    1. Configure um proxy HTTP: adicione http-proxy e https-proxy ao daemon.json.
    2. Use uma VPN ou um serviço de proxy.
    3. Procure um serviço local de espelhamento de imagens. Algumas comunidades replicam imagens do gcr.io.

Alternativas para quando nada mais funciona

Se você já tentou tudo acima e ainda não conseguiu resolver, considere estas alternativas:

  1. Use um proxy para o Docker — configure um proxy HTTP no daemon.json para que o Docker acesse a internet por ele.
  2. Crie um registry privado local — use uma ferramenta como Harbor para manter um repositório privado e sincronize manualmente as imagens necessárias.
  3. Tente em outro horário — em alguns casos, o problema ocorre no horário de pico da rede e desaparece mais tarde.

Se houver um problema, mantenha a calma e identifique em qual etapa ele ocorre. Investigando uma parte de cada vez, você provavelmente encontrará a solução.

Conclusão

Com isso, cobrimos os principais pontos. Em resumo:

Pontos essenciais:

  • Depois de 6 de junho de 2024, os principais mirrors do Docker na China, incluindo Alibaba Cloud, NetEase e Tencent Cloud, deixaram de funcionar.
  • Os mirrors que ainda funcionavam eram principalmente mantidos pela comunidade, como Xuanyuan Mirror e DaoCloud.
  • Para configurá-los, altere o daemon.json, adicione registry-mirrors e reinicie o Docker.
  • Configure vários mirrors como alternativas para aumentar a taxa de sucesso.
  • Ao encontrar um problema, confira primeiro o formato JSON, o estado do serviço do Docker e a conexão de rede.

Embora esses mirrors comunitários não sejam tão estáveis quanto os serviços das grandes empresas, ao menos resolvem uma necessidade imediata. Não sei por quanto tempo continuarão funcionando, por isso recomendo salvar o projeto dongyubin/DockerHub, que atualiza continuamente a lista de mirrors disponíveis.

Se este artigo ajudou você a resolver a lentidão no download de imagens do Docker, compartilhe-o com outras pessoas que enfrentam o mesmo problema. Se tiver alguma dúvida, deixe um comentário. Responderei quando puder.

E um último lembrete: valorize esses recursos gratuitos, mantidos pela comunidade com recursos próprios, e não abuse deles. Manter esse tipo de serviço não é fácil.

Tabela de decisão de disponibilidade para 2026

CenárioSolução principalAlternativaCritério de avaliação
Timeout ocasional em uma máquina pessoal de desenvolvimentoConfigure 2 ou 3 registry-mirrors comunitáriosConfigure um proxy HTTP/HTTPS para o daemon do Dockerdocker pull nginx:latest termina de forma consistente
Downloads frequentes em CI/CDPull-through cache privado ou HarborArmazene imagens-base em um repositório de artefatosNão depende de mirrors públicos que podem mudar a qualquer momento
Rede corporativa ou proxy transparenteConfirme primeiro o proxy, os certificados e o DNSDepois, configure um registry mirrorO navegador conseguir acessar não significa que o daemon do Docker também consiga
Imagem pouco popular ou registry privadoConexão direta com o registry de destino por meio de um proxySincronização manual para um registry privadoMirrors públicos servem apenas para imagens públicas do Docker Hub

Leitura complementar: transforme problemas com imagens em um processo observável

Fluxo de diagnóstico de mirrors do Docker em 2026

Primeiro identifique a camada de rede e, depois, escolha entre um registry mirror, um proxy ou um cache privado.

⏱️ Estimated time: 5 min

  1. 1

    Step 1: Confirme a rede real do daemon do Docker

    Use docker pull, docker info e systemctl status docker para determinar se o problema está no daemon do Docker, e não no proxy do navegador ou do terminal.
  2. 2

    Step 2: Configure um mirror ou proxy

    Em uma máquina pessoal de desenvolvimento, você pode configurar vários registry-mirrors; em uma rede corporativa, priorize um proxy HTTP/HTTPS para o daemon do Docker ou um pull-through cache próprio.
  3. 3

    Step 3: Valide com imagens reais

    Teste imagens públicas como nginx e redis e, em seguida, confirme com a imagem do seu projeto. Se uma imagem menos popular falhar, não conclua que todos os mirrors estão fora do ar.

FAQ

Como escolher um mirror do Docker em 2026?
Escolha primeiro de acordo com o cenário: uma máquina pessoal pode usar vários registry-mirrors comunitários; CI/CD e redes corporativas se beneficiam mais de um pull-through cache privado, Harbor ou um proxy para o daemon do Docker. Não trate nenhum mirror público como um serviço com SLA de longo prazo.
Vale a pena configurar vários registry-mirrors no daemon.json?
Sim, mas isso melhora apenas a taxa de sucesso no download de imagens públicas do Docker Hub. Não acelera gcr.io, quay.io nem registries privados e também não contorna problemas com certificados corporativos ou proxies transparentes.
Quando devo criar meu próprio pull-through cache?
Quando a equipe baixa com frequência as mesmas imagens-base no CI ou não quer depender de mirrors públicos mantidos pela comunidade. A documentação oficial do Docker também apresenta registry mirror e pull-through cache como soluções formais para reduzir downloads repetidos.
Como investigar um timeout mesmo depois da configuração?
Verifique, nesta ordem, o formato do JSON, se o Docker foi reiniciado, o proxy do daemon, o DNS, os certificados e se a imagem pertence às imagens públicas do Docker Hub. Só depois troque o mirror; não comece substituindo endereços às cegas.
O que fazer se ainda houver limite de taxa e erro 429 após configurar um mirror?
Confira se a falha é um timeout ou um erro 429. Desde 1º de abril de 2025, o Docker Hub limita os pulls por taxa: 10 por hora para cada IP sem login, 100 por hora após o login em uma conta Personal gratuita e sem limite para planos Pro, Team e Business, sujeito ao uso justo. Ao exceder a cota, o serviço retorna HTTP 429. Isso é diferente de uma falha em um mirror na China, e trocar de mirror nem sempre contorna o problema. A solução correta é começar com docker login em uma conta gratuita para aumentar a cota para 100 pulls por hora. Tenha atenção especial no CI: GitHub Actions, GitLab SaaS e outros serviços usam IPs de saída compartilhados, então as 10 tentativas por hora são divididas por todo o IP e podem ser consumidas por outras pessoas.

13 min de leitura · Publicado em: 17 dez 2025 · Atualizado em: 4 set 2026

Comentários

Entre com GitHub para comentar

Easton BlogEaston Blog