Registry pricing is a dumpster fire - you've got storage, transfer, scanning fees, and a bunch of other charges that add up fast. Nobody tells you about the real costs until your credit card gets hit.
Storage Costs: Not As Simple As They Seem
AWS ECR looks straightforward - $0.10 per GB monthly with no base fee. Cool, right? Wrong. You'll hit data transfer costs that make storage look cheap. I've seen teams get a $50 storage bill and a $300 transfer bill in the same month.
Azure Container Registry plays the tiered game. Basic tier gets you 10 GB for $5/month - sounds reasonable until you realize Basic tier is basically useless. Premium tier is $50/month but includes 500 GB and actually works for production. Learned that the hard way when Basic's webhook limits broke our deployments.
Google Artifact Registry gives you 0.5 GB free, then it's $0.10 per GB. The 0.5 GB free is a joke - barely enough for a "hello world" image. Our 500 GB of images costs about $50/month there, which is honest at least.
Data Transfer: The Real Budget Killer
Here's where they get you. AWS data transfer follows their standard egress pricing - $0.09/GB to the internet, plus inter-region costs. We made the mistake of putting ECR in us-east-1 and deploying to eu-west-1. That 2.5GB Docker image costs $0.225 every time it gets pulled. With CI/CD pulling it 40 times daily across regions, that's $270/month just in transfer costs for ONE image.
Google's transfer costs range from $0.01 to $0.08 per GB depending on distance. Sounds cheap until you realize your CI/CD pipeline pulls the same images 50 times a day across regions. That $0.01 becomes real money.
Docker Hub pulled a fast one in 2024. Pricing went up 67% - Pro is now $9/month and Team jumped to $15/user/month. The sticker shock is brutal, especially with stricter rate limiting on free tiers. Had one client's Docker Hub bill go from $200/month to $480/month overnight when they upgraded to avoid rate limiting issues.
The Enterprise Tax
JFrog Artifactory starts at $150/month for Pro and goes to $950/month for Enterprise X. Expensive as hell, but it actually includes everything - scanning, X-ray analysis, distribution. No surprise bills. Sometimes paying more upfront saves money vs nickel-and-diming.
Harbor is free if you don't value your weekends. Self-hosting means you handle backups, updates, security patches, and 3am outages. One guy on the team becomes "the Harbor guy" and hates his life. But it works, and big enterprises save serious cash running it on existing K8s clusters.
Managed vs Self-Hosted: Pick Your Poison
Managed services cost more but someone else deals with backups and upgrades. Self-hosting Harbor is cheaper until things break at 3am and you're debugging networking issues while the CEO asks why deployments are down.
I've run both. Managed services are boring but reliable. Self-hosted saves money but requires ops expertise. Pick based on whether you want predictable bills or predictable 3am wake-up calls.
Ready for the real numbers? The comparison table below shows exactly what each provider actually costs, not their marketing promises.
Additional Resources:
- Docker Hub Pricing Guide
- AWS ECR Best Practices
- Azure ACR Service Tiers
- Google Artifact Registry Docs
- Harbor Installation Guide
- JFrog Artifactory Pricing Calculator
- Kubernetes Registry Configuration
- Container Registry Security Best Practices
- CI/CD Pipeline Optimization
- Docker Rate Limiting Solutions