Docker Registry
10. Docker Registry
Section titled “10. Docker Registry”📦 Registry Options Comparison
Section titled “📦 Registry Options Comparison”| Registry | Cost | Privacy | Best For |
|---|---|---|---|
| Docker Hub | Free (limited) | Public/Private | Open source, personal |
| GitHub Container Registry | Free for public | Public/Private | GitHub projects |
| AWS ECR | Pay per GB | Private | AWS deployments |
| Google Artifact Registry | Pay per GB | Private | GCP deployments |
| Azure ACR | Pay per tier | Private | Azure deployments |
| Self-hosted (Harbor) | Infrastructure cost | Full control | Air-gapped / compliance |
🚀 GitHub Container Registry (GHCR)
Section titled “🚀 GitHub Container Registry (GHCR)”# Login with personal access tokenecho $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
# Tag image for GHCRdocker tag my-app ghcr.io/username/my-app:latestdocker tag my-app ghcr.io/username/my-app:1.0.0
# Pushdocker push ghcr.io/username/my-app:latestdocker push ghcr.io/username/my-app:1.0.0
# Pulldocker pull ghcr.io/username/my-app:1.0.0☁️ AWS ECR (Elastic Container Registry)
Section titled “☁️ AWS ECR (Elastic Container Registry)”# Authenticate to ECRaws ecr get-login-password --region us-east-1 | \ docker login --username AWS \ --password-stdin 123456789.dkr.ecr.us-east-1.amazonaws.com
# Create repositoryaws ecr create-repository --repository-name my-app --region us-east-1
# Tag and pushdocker tag my-app:latest 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:latestdocker push 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:latest🏗️ Private Registry with Harbor
Section titled “🏗️ Private Registry with Harbor”# Run Harbor (production-grade private registry)# Download installer from: https://github.com/goharbor/harbor/releases
# After installation:docker login registry.company.comdocker tag myapp registry.company.com/myproject/myapp:1.0docker push registry.company.com/myproject/myapp:1.0