Docker Hub público expõe imagens. Registry privado garante segurança, controle e performance. Harbor é solução enterprise completa.
Conceitos Principais
Docker Registry
Servidor de armazenamento de imagens. HTTP API para push/pull. Backend: filesystem, S3, Azure Blob. Open source, simples.
Harbor
Registry + UI + RBAC + scanning + replicação. Projects, users, policies. Trivy integrado para CVE scan. Webhook para CI/CD.
Autenticação
Basic auth, LDAP, OIDC. TLS obrigatório para produção. Docker login antes de push/pull. Token-based auth.
Replicação
Multi-datacenter. Push-based ou pull-based. Disaster recovery. Edge caching para dev teams.
Passo a Passo
- Setup Registry Básico: Docker:
docker run -d -p 5000:5000 --name registry registry:2. Tag:docker tag app localhost:5000/app. Push:docker push localhost:5000/app. - TLS para Produção: Gere cert: Let's Encrypt ou self-signed. Mount: -v certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert.pem. HTTPS obrigatório.
- Autenticação: Htpasswd:
htpasswd -Bbn user pass > auth/htpasswd. Mount: -v auth:/auth -e REGISTRY_AUTH=htpasswd.docker login registry.example.com. - Harbor Setup: Compose:
wget https://github.com/goharbor/harbor/releases/download/v2.x/harbor-offline-installer-v2.x.tgz. Configure harbor.yml../install.sh. - CI/CD Integration: GitHub Actions: docker login $REGISTRY. docker build/push. Harbor webhook notifica deploy. Scan de vulnerabilidades bloqueia push.
Boas Praticas
Recomendacoes
• TLS sempre (não insecure registry)
• RBAC granular (Harbor projects)
• Scan automático de imagens
• Garbage collection para economizar storage
• Backup de registry data
• Replicação para DR
Erros Comuns
Evite estes erros
• HTTP sem TLS (inseguro)
• Não fazer backup
• Sem autenticação
• Não configurar garbage collection (storage cresce infinito)
Checklist
- Registry deployado com TLS
- Autenticação configurada
- Harbor instalado (se enterprise)
- CI/CD integrado
- Scan de vulnerabilidades ativo
- Backup automático configurado
- Replicação para DR (se multi-region)