Container Registry Comparison: ECR vs GCR vs Docker Hub vs GHCR
Choose the right container registry for your team. Compare AWS ECR, Google Artifact Registry (GCR), Docker Hub, GitHub Container Registry (GHCR), and Azure ACR on pricing, access control, vulnerability scanning, and geographic replication.
Related Products
on GumroadDeveloper Productivity Bundle
Stop rebuilding the same setup every project. 51 VSCode snippets, 40 Git aliases, 5 Docker Compose stacks, 5 GitHub Actions workflows, 5 README templates, and a dotfiles kit. Set up a professional dev environment in under an hour.
Buy on Gumroad โAI Prompt Engineering Toolkit
58 structured prompt templates for Claude, ChatGPT, and Gemini โ organized by use case. Code Review, Debugging, Documentation, Architecture, and 10 model-specific tips. Stop writing prompts from scratch.
Buy on Gumroad โDeveloper Cheat Sheet Bundle
10 print-ready cheat sheets for the tools developers use every day: Git, Docker, Linux CLI, SQL, Regex, HTTP Status codes, VS Code shortcuts, Bash scripting, jq/JSON, and Markdown.
Buy on Gumroad โYou Might Also Need
JSON Formatter & Validator
Format, beautify, and validate JSON online. Paste your JSON to instantly pretty-print it with 2-space, 4-space, or tab indentation. Minify JSON too. Free, runs in your browser.
Open free tool โ
Regex Tester
Free regex tester. Test regular expressions against multiple strings with expected match/no-match assertions โ see instant pass/fail results. Built-in presets for email, URL, IPv4, and phone. Pro: unl
Open free tool โ
Base64 Encoder & Decoder
Free Base64 Encoder & Decoder. Convert text, images, and any file to Base64 and back. Supports URL-safe Base64, image data URIs, and file download from Base64. Runs 100% in your browser โ no data sent
Open free tool โ
More Free Tools
Related Articles
curl ๆทฑๅบฆไฝฟ็จๆๅ๏ผAPI ๆธฌ่ฉฆๅพๅ ฅ้ๅฐ้ฒ้
curl ๆฏๆฏไฝ้็ผ่ ๅฟ ๅ็ CLI ๅทฅๅ ทใๆฌๆๆถต่ GET/POST/PUT/DELETE ่ซๆฑใ่ช่ญใheader ่จญๅฎใๆชๆกไธๅณใ้ค้ฏๆๅทง๏ผไปฅๅ REST API ๆธฌ่ฉฆ็ๅฎๆดๅฏฆๆฐ็ฏไพใ
Best AI Code Review Tools 2026: CodeRabbit, Sourcery, DeepCode & Bito Compared
Compare top AI code review tools for 2026: CodeRabbit, Sourcery, DeepCode, and Bito. Features, pricing, GitHub/GitLab integration, and choosing the right tool for your team.
AI Code Review Tools 2026: GitHub Copilot, CodeRabbit, Qodo Merge Ranked
Compare AI code review tools for 2026: GitHub Copilot code review, CodeRabbit, Qodo Merge, Sourcery, and PR-Agent. Pricing, accuracy, and GitHub integration.
AI Coding Tools Comparison 2026: GitHub Copilot vs Cursor vs Windsurf vs Cline
Comprehensive comparison of the best AI coding tools in 2026: GitHub Copilot, Cursor, Windsurf, and Cline. Pricing, features, model support, and real-world benchmarks.
AI Pair Programming in 2026: GitHub Copilot vs Cursor vs Claude Code
Master AI pair programming in 2026. Compare GitHub Copilot, Cursor, and Claude Code for autocomplete, chat, and agentic workflows. Includes setup guides and productivity tips.
Enjoying this tool? Get more like it.
Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.
Unlock AI-Powered Dev Tools
- โก AI Code Review, Doc Generator & SQL Builder
- โก All premium templates & early access
- โก Member discounts on Gumroad products
$9/mo after trial ยท Cancel anytime
Want the full toolkit?
Get DevPlaybook Pro
Every template, guide, boilerplate, and automation script in one bundle. 13 premium products โ grab them all at once and save big.
MIT licensed ยท Instant download ยท No subscription
See what's included โ Browse all deals โWhat Is a Container Registry?
A container registry stores and distributes OCI-compliant container images. Your CI/CD pipeline builds an image, tags it (e.g., myapp:v1.2.3), and pushes it to the registry. When Kubernetes or ECS deploys the app, it pulls the image from the registry.
Key capabilities to evaluate:
- Authentication โ How does your cluster authenticate to pull images?
- Access control โ Can you limit who can push vs pull, per repository?
- Vulnerability scanning โ Does it scan images on push?
- Rate limits โ Will pulls get throttled under load?
- Geographic availability โ Can images be replicated close to your clusters?
- Pricing โ Storage and egress costs at scale.
Feature Comparison Table
| Feature | ECR (AWS) | Artifact Registry (GCP) | Docker Hub | GHCR | ACR (Azure) |
|---|---|---|---|---|---|
| Auth method | IAM (token, 12h TTL) | Service Account / WI | Username + PAT | GITHUB_TOKEN / PAT | Service Principal / MI |
| Free private repos | Unlimited (storage cost) | 0.5 GB/month free | 1 (free tier) | Included in GH plan | Geo + tier dependent |
| Pull rate limits | None (within AWS) | None | 200/6h (free) | None | None |
| Vulnerability scanning | Basic + Inspector | Container Analysis | Paid plans | Dependabot alerts | Defender for Containers |
| Geo replication | Cross-region rules | Multi-region repos | CDN (public images) | Limited | Premium tier |
| OCI artifacts | Yes | Yes (multi-format) | Limited | Yes | Yes |
| Best for | AWS workloads | GCP / multi-format | Public OSS images | GitHub CI/CD teams | Azure workloads |
Authenticating to Each Registry
AWS ECR โ IAM-Based Auth
ECR uses short-lived tokens generated via aws ecr get-login-password. Tokens expire after 12 hours, so static imagePullSecrets break overnight. For EKS, use the ECR credential provider plugin โ it refreshes tokens automatically at the node level.
# Login to ECR
aws ecr get-login-password --region us-east-1 \
| docker login --username AWS \
--password-stdin 123456789.dkr.ecr.us-east-1.amazonaws.com
# Push image
docker tag myapp:latest 123456789.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
docker push 123456789.dkr.ecr.us-east-1.amazonaws.com/myapp:latest GitHub GHCR โ GITHUB_TOKEN
GHCR integrates with GitHub Actions natively. Use GITHUB_TOKEN for same-repository images โ no PAT needed. For cross-repository pulls, create a PAT with read:packages scope.
# GitHub Actions workflow
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: {{ github.actor }}
password: {{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: ghcr.io/{{ github.repository }}:latest GCP Artifact Registry โ Workload Identity
For GKE, use Workload Identity Federation to bind a Kubernetes Service Account to a GCP Service Account โ no credentials in Kubernetes Secrets. For local dev, use gcloud auth configure-docker.
# Configure docker to use gcloud credentials
gcloud auth configure-docker us-central1-docker.pkg.dev
# Push to Artifact Registry
docker tag myapp:latest us-central1-docker.pkg.dev/my-project/my-repo/myapp:latest
docker push us-central1-docker.pkg.dev/my-project/my-repo/myapp:latest Pricing Comparison (2026)
| Registry | Storage | Egress (same region) | Egress (cross-region) | Free Tier |
|---|---|---|---|---|
| ECR | $0.10/GB/month | Free | $0.09/GB | 500MB/month (12mo) |
| Artifact Registry | $0.10/GB/month | Free | Varies by region | 0.5 GB storage |
| Docker Hub | $0 (public) / plan-based | Free | Free | 1 private repo |
| GHCR | $0 (public) / GH plan | Free | Free | GH Free: 500MB/1GB egress |
| ACR Basic | $0.003/GB/day | Free (Azure VNet) | Standard Azure egress | $0.167/day (Basic tier) |
Note: ECR egress is free when pulling from EC2/ECS/EKS in the same AWS region. Cross-region or internet egress costs apply.
Choosing the Right Registry
AWS-first teams โ ECR
Zero egress costs within AWS, native IAM integration, no rate limits. Use the ECR credential provider for EKS to avoid token expiry issues.
GitHub Actions CI/CD โ GHCR
Native GITHUB_TOKEN auth, no extra accounts, free for public repos, private included in GitHub plans. Best DX for GitHub-centric teams.
GCP teams โ Artifact Registry
Multi-format (Docker, Helm, npm, Maven), Workload Identity for zero-credentials auth on GKE, Container Analysis for scanning.
Public OSS projects โ Docker Hub
Still the default for public images. Official images, automated builds, massive ecosystem. Rate limits only affect anonymous pulls.