Ao trabalhar com Docker, você lida com imagens — arquivos executáveis que contêm tudo o que é necessário para executar uma aplicação, incluindo o código-fonte, as bibliotecas e as dependências. Essas imagens são armazenadas em repositórios especializados chamados registros, que podem ser privados ou públicos.
O registro público mais conhecido é o Docker Hub, onde é possível encontrar diversas imagens oficiais como Nginx, PostgreSQL, Alpine, Ubuntu, Node e MongoDB. Usuários podem se registrar no Docker Hub e armazenar suas próprias imagens — por padrão, com um registro público e três registros privados. O Docker Hub é o registro padrão usado pelo Docker para baixar (pull) imagens.
Este guia explica como alterar o registro padrão do Docker para outro.
Uma maneira simples de utilizar registros externos é recorrer aos oferecidos por empresas como Google e Amazon.
Abaixo estão alguns registros públicos que você pode usar:
|
URL do registro |
Proprietário |
|
|
|
|
Amazon |
|
|
Red Hat |
|
|
Red Hat |
|
|
Red Hat |
⚠️ Atenção: o uso de registros externos pode representar riscos de segurança. Use com cuidado.
Siga os passos abaixo para substituir o Docker Hub por outro registro padrão.
Abra o arquivo daemon.json com um editor de texto.
Se o Docker estiver instalado em modo normal (não rootless), o arquivo estará localizado em:
/etc/docker/daemon.json
Se o arquivo não existir, crie-o com:
nano /etc/docker/daemon.json
Para o Docker em modo rootless, o arquivo fica no diretório pessoal do usuário:
~/.config/docker/daemon.json
Crie o arquivo se ele não existir:
nano ~/.config/docker/daemon.json
Adicione o seguinte parâmetro para definir um novo registro padrão (neste exemplo, o mirror do Google):
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Salve e feche o arquivo.
Reinicie o serviço do Docker para aplicar as alterações:
systemctl reload docker
A partir de agora, o Docker utilizará o novo registro para baixar imagens.
Por exemplo, para baixar a imagem Alpine do registro do Google:
docker pull mirror.gcr.io/alpine
Você também pode especificar uma versão específica:
docker pull mirror.gcr.io/nginx:1.25.2
Abra o arquivo daemon.json, localizado em:
C:\Users\<seu_nome_de_usuário>\.docker\daemon.json
Adicione o parâmetro:
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Salve o arquivo e reinicie o Docker. Clique com o botão direito no ícone do Docker na barra de tarefas e selecione Restart.
Também é possível configurar o registro pela interface do Docker Desktop:
acesse Settings → Docker Engine e adicione:
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Clique em Apply & Restart para salvar as mudanças e reiniciar o Docker. Após o reinício, o Docker usará o novo registro para os downloads.
Por exemplo, para baixar a imagem curl:
docker pull mirror.gcr.io/curlimages/curl
Ou uma versão específica:
docker pull mirror.gcr.io/node:21-alpine
Você também pode usar o Nexus para gerenciar imagens Docker. O Nexus oferece suporte a repositórios proxy, que armazenam em cache imagens baixadas de registros externos, como o Docker Hub. Assim, o Nexus pode funcionar como um registro proxy com cache, útil quando registros externos estão temporariamente indisponíveis.
Faça login no Nexus com uma conta administradora ou com permissão para criar repositórios.
Vá em Server Administration and Configuration → Repositories.
Clique em Create repository e selecione o tipo docker (proxy).
Preencha os seguintes campos:
Name: defina um nome exclusivo para o repositório.
Online: mantenha esta opção marcada para permitir conexões.
Proxy server: se o Nexus estiver atrás de um proxy (como Nginx), não será necessário configurar portas de autenticação.
Caso contrário, atribua uma porta única para HTTP ou HTTPS.
Allow anonymous docker pull: se ativado, não será necessário autenticar com docker login.
Se desativado, o login será obrigatório antes de baixar imagens.
Remote storage: informe o endereço do registro externo (por exemplo, https://registry-1.docker.io para o Docker Hub).
Após criar o repositório, faça login no registro Nexus (se necessário):
docker login <endereco_registro_nexus>
Para baixar uma imagem, use o formato:
docker pull <endereco_registro_nexus>/nome_imagem:tag
Exemplo: baixar a imagem Python com a tag 3.8.19-alpine:
docker pull nexus-repo.com/python:3.8.19-alpine
⚠️ Dica de segurança: evite usar a tag latest, pois ela pode conter bugs ou vulnerabilidades.
Neste artigo, foram apresentadas várias formas de baixar e armazenar imagens Docker. O uso de registros externos pode ser útil quando o Docker Hub está indisponível. Se você não confia em registros públicos, pode criar e hospedar seu próprio registro Docker, seja ele privado ou público, usando ferramentas como Nexus ou Harbor.