Configurando registros Docker externos
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.
Usando registros Docker externos Copiar link
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.
Configuração no Linux Copiar link
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
Configuração no Windows (Docker Desktop) Copiar link
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
Usando Nexus como registro Docker Copiar link
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.
Configurando um repositório proxy no Nexus Copiar link
-
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.
Conclusão Copiar link
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.