Docker Compose para subir um Registry local com autenticação

Este documento explica como configurar um Docker Registry privado protegido por usuário e senha utilizando Docker Compose.

1. Criar um arquivo de senhas

Antes de iniciar o serviço, crie um arquivo de senhas para autenticação:

mkdir -p auth
docker run --rm --entrypoint htpasswd httpd:2 -Bbn usuario senha > auth/htpasswd

Substitua usuario e senha pelos valores desejados.

2. Criar o arquivo docker-compose.yml

Agora crie um arquivo docker-compose.yml com o seguinte conteúdo:

version: "3"

services:
  registry:
    image: registry:2
    container_name: private-registry
    restart: always
    ports:
      - "5000:5000"
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: "Registry Realm"
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /var/lib/registry
    volumes:
      - registry-data:/var/lib/registry
      - ./auth:/auth

volumes:
  registry-data:

3. Subir o serviço

Execute o seguinte comando para iniciar o Registry:

docker-compose up -d

4. Autenticação e Uso

Fazer login no Registry

docker login localhost:5000 -u usuario -p senha

Enviar uma imagem para o Registry

docker tag nginx:latest localhost:5000/nginx
docker push localhost:5000/nginx

Listar as imagens armazenadas

curl -u usuario:senha http://localhost:5000/v2/_catalog

Agora seu Docker Registry privado está configurado e protegido com autenticação. 🚀

Você achou esse artigo útil?