📦 Docker Registry = Image Storage
Images need a home. Docker Registry stores and distributes images. Public, private, secure.
📝 Registry Basics
# Public Registry (Docker Hub)
docker login
docker pull nginx:latest
docker push username/myapp:latest
# Private Registry
# Run registry
docker run -d -p 5000:5000 --name registry registry:2
# Push to private registry
docker tag myapp localhost:5000/myapp
docker push localhost:5000/myapp
# Pull from private registry
docker pull localhost:5000/myapp
# Registry with authentication
docker run -d -p 5000:5000 \
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /auth:/auth \
registry:2
🎯 Registry Management
# Cloud Registries
# AWS ECR
aws ecr create-repository --repository-name myapp
docker tag myapp:latest aws_account_id.dkr.ecr.region.amazonaws.com/myapp:latest
docker push aws_account_id.dkr.ecr.region.amazonaws.com/myapp:latest
# Azure ACR
az acr create --name myregistry --sku Basic
az acr login --name myregistry
docker tag myapp myregistry.azurecr.io/myapp:latest
docker push myregistry.azurecr.io/myapp:latest
# Google GCR
gcloud auth configure-docker
docker tag myapp gcr.io/my-project/myapp:latest
docker push gcr.io/my-project/myapp:latest
# Registry Commands
# List images (using API)
curl -X GET http://localhost:5000/v2/_catalog
# Delete image
# Requires registry:2 with delete enabled
docker run --rm -v /var/lib/registry:/registry registry:2 \
registry garbage-collect /etc/docker/registry/config.yml
# Clean up
docker system prune -a
# Registry UI
docker run -d -p 8080:80 konradkleine/docker-registry-frontend
💡 Registry Tips
- Use private registry for internal images
- Use cloud registries for production
- Tag images with version numbers
- Clean old images regularly
- Secure registry with authentication
“Docker Registry stores and distributes images. Public, private, secure. Essential for container workflow.”
