PT
Iniciar sessão Criar conta

Como instalar o Docker Registry no Saplo (registo de imagens privado sem limites do Docker Hub)

O teu próprio registo de imagens Docker privado, no teu domínio, com uma UI de navegador para repositórios, tags e camadas, sem conta no Docker Hub e sem limites de pull rate. Um guia passo a passo sobre como instalar o Docker Registry no Saplo.

Grzegorz Kalmus ·

O Docker Hub, no plano gratuito, oferece um repositório privado e limites de descarregamento de imagens. Cada imagem adicional ou limite de taxa de pull mais elevado requer um plano pago Pro ou Team, cobrado por utilizador mensalmente. O Docker Registry no Saplo é o teu próprio armazém privado de imagens Docker criadas, sob o teu domínio, com uma interface de navegador simples para navegar em repositórios, tags e camadas, sem limites de repositórios ou limites de descarregamento. Abaixo, vê como configurar o Docker Registry no Saplo, passo a passo.

Porquê um registo próprio em vez do Docker Hub

O Docker Hub é conveniente para começar, mas tem duas desvantagens que um registo próprio elimina:

  • o plano gratuito do Docker Hub oferece apenas um repositório privado, cada imagem privada adicional requer um plano Pro pago (a partir de cerca de 4,50 € por mês) ou Team (a partir de cerca de 8,50 € por mês por utilizador), se mais pessoas trabalharem no projeto,
  • as limites de pull rate limitam o número de vezes que um pipeline CI/CD ou um servidor de produção pode fazer pull de uma imagem por dia, o que, com implementações frequentes e muitas instâncias da mesma aplicação, pode efetivamente bloquear a implementação no pior momento,
  • as imagens criadas no CI/CD da empresa e mantidas na nuvem pública de outra pessoa são dados fora do teu controlo, mesmo que o repositório esteja marcado como privado.

O Docker Registry no Saplo é a imagem oficial registry:2 (Docker Distribution) juntamente com uma UI de navegador, ambos num único contêiner Docker no teu Box. Os repositórios e downloads não são contados por ninguém, e o custo total é o custo do próprio Box, independentemente de quantas imagens e quantas vezes por dia o teu pipeline as descarrega.

Requisitos

Para instalar o Docker Registry no Saplo, precisas de:

  • Uma Box com o Docker a funcionar (o motor ativa-o automaticamente ao instalar a partir do catálogo, é necessário o aninhamento no contentor, que o Saplo tem por padrão),
  • Mínimo de 512 MB de RAM livres na Box e 10 GB de espaço em disco para as imagens, ou seja, o plano mais económico que suporta isso é a Box S por 27 € anuais,
  • Um domínio ou subdomínio *.saploapp.pl incluído em todos os planos, para o registo e a UI,
  • NÃO precisas de uma base de dados separada, o registo guarda as imagens construídas no volume de dados da aplicação, e não numa base de dados SQL.

Uma descrição completa da aplicação e a sua localização no catálogo podem ser encontradas na página Docker Registry no Saplo.

Instalação passo a passo

  1. No Painel Saplo, acede ao Catálogo de aplicações e seleciona Docker Registry.
  2. Escolhe uma Box com um mínimo de 512 MB de RAM livre e 10 GB de espaço em disco livre, bem como um domínio ou subdomínio sob o qual o registo será instalado.
  3. Confirma a instalação. O motor gera uma palavra-passe de administrador aleatória, guarda-a como um hash bcrypt (o único formato suportado pelo registo Docker no modo de autorização htpasswd), instala dois contentores, registry a partir da imagem oficial registry:2 e registry-ui a partir da imagem joxit/docker-registry-ui, e aguarda que a UI responda via HTTP antes de considerar a instalação concluída.
  4. A UI funciona como um proxy reverso para a API do registo na mesma porta e domínio, portanto docker login, docker push e docker pull funcionam diretamente no endereço da aplicação, sem portas adicionais e sem configuração CORS.
  5. As credenciais de administrador (login, palavra-passe) são guardadas no ficheiro DOCKER-REGISTRY-SETUP.txt no diretório da aplicação.

Primeiro uso

  1. Lê o nome de utilizador e a palavra-passe do ficheiro DOCKER-REGISTRY-SETUP.txt no catálogo de aplicações (o nome de utilizador é, por predefinição, admin, e a palavra-passe é gerada aleatoriamente durante a instalação).
  2. Inicia sessão a partir do Docker local com o comando docker login seu-dominio.saploapp.pl e insere o nome de utilizador e a palavra-passe do ficheiro.
  3. Atribui uma etiqueta à imagem no endereço do registo, por exemplo docker tag my-image:latest seu-dominio.saploapp.pl/my-image:latest, e envia-a com o comando docker push.
  4. Acede ao endereço do domínio no teu navegador, inicia sessão com o mesmo nome de utilizador e palavra-passe, e navega pelos repositórios, etiquetas e camadas na IU de joxit/docker-registry-ui.
  5. No servidor de produção ou no pipeline CI/CD, descarrega a imagem com o comando docker pull seu-dominio.saploapp.pl/my-image:latest, depois de iniciar sessão com a mesma conta.

Docker Registry na Saplo vs Docker Hub

Docker Hub Free Docker Hub Pro/Team Docker Registry na Saplo
Limite de repositórios privados um ilimitado ilimitado
Limite de pull rate sim, para contas anónimas e gratuitas mais alto, mas ainda contabilizado nenhum
Onde estão as imagens nos servidores da Docker Inc nos servidores da Docker Inc no teu Box
Custo 0 USD, mas com limites a partir de cerca de 5 USD por mês por utilizador custo do Box (a partir de 27 € por ano)

Perguntas frequentes

É necessário criar uma conta no Docker Hub ou noutro registo público? Não, o Docker Registry no Saplo funciona de forma totalmente independente. O login para docker login é feito com o nome de utilizador e a palavra-passe gerados durante a instalação, sem necessidade de uma conta de um fornecedor externo.

Existe um limite para o número de imagens ou de downloads? Não, a única restrição é o espaço em disco da Box que compras no plano.

É possível alterar a palavra-passe do administrador? Sim, podes gerar um novo hash bcrypt com o contentor único httpd:2.4-alpine (docker run --rm httpd:2.4-alpine htpasswd -Bbn user password), substituir o ficheiro htpasswd na pasta da aplicação e reiniciar o contentor do registo.

O registo requer uma base de dados separada? Não, as imagens e os seus metadados são armazenados no volume de dados do contentor do registo, sem necessidade de uma base de dados MySQL ou Postgres separada.

É possível eliminar imagens e tags antigas? Sim, a eliminação de imagens está ativada (REGISTRY_STORAGE_DELETE_ENABLED) e disponível diretamente na UI do navegador, sem necessidade de aceder via SSH.

Se atualmente pagas pelo Docker Hub Pro ou Team apenas para ter mais do que um repositório privado, escreve-nos, nós vamos ajudar-te a configurar o teu próprio registo.

  • #CI/CD
  • #DevOps
  • #Docker
  • #Guia