Container registries often get confused for their repository counterparts, even though they serve different purposes.
A container repository is storage for your containerized application images. These days, most image repositories focus on the 'OCI' format, based on the container format Docker popularized and opened up to everyone. In fact, 'OCI images' and 'Docker images' are often used interchangeably in the marketing of registry providers.
OCI stands for Open Container Initiative. The initiative is a container structure intended to act as the industry standard format. Most of the major players in tech, development, and cloud services back the initiative and support the OCI format. Read more about it on the Open Container Initiative website.
A container registry, then, acts as both a collection of container repositories and a searchable catalogue where you manage and deploy images.
There are many container registry options on the market, serving customers of different types, sizes, and needs. Let's look at our top 8 and why they might appeal.
Docker Hub
Given Docker invented the standard OCI format for container delivery, along with adoption from all major operating systems, it makes sense that Docker Hub is also the standard registry for image management. If you're in development, chances are you've already used Docker Hub, especially if you ever followed one of our technical guides or blogs.
While all registry services on this list help you manage Docker's format, Docker Hub as a registry is still worthy of a place here. Not least because it offers a huge public registry you can use to deploy apps from vendors large and small, but to also deliver your own.
Amazon ECR
Amazon's Elastic Container Registry (ECR) is useful if you're already using Amazon Web Services (AWS) to host applications, due to its integration and team management options.
Amazon's ECR is woven into all their container hosting services, so you can easily manage and push your images to:
- Elastic Container Services (ECS)
- Elastic Kubernetes Services (EKS)
- AWS Lambdas
(Providing you can get your head around all these similar acronyms, of course.)
Like Docker Hub, their public registry and marketplace are also worth the price of admission, allowing deployment of many products, free software, and open-source projects. You're never short of existing environments to build on.
Harbor
Harbor is an open-source registry you can install almost anywhere, but is particularly suited to Kubernetes.
Where certain services tie their registries tightly into their own services, Harbor's freedom makes it a versatile option. It's compatible with most cloud services and Continuous Integration and Continuous Delivery (CI/CD) platforms, and it's a good on-premises solution too.
Azure Container Registry
While offering similar services to AWS, Microsoft's Azure Container Registry (ACR) boasts support for Docker and OCI images, and Helm charts too.
Azure's biggest selling point, however, is its registry geo-replication. This ensures everyone has the same access to images no matter where they're based, at speeds they're used to.
GitHub Container Registry
Given GitHub's reach and that it's already available for all users, GitHub's Container Registry (part of a bigger feature called GitHub Packages) is one of the most approachable options.
The benefits to considering GitHub Packages for container management include:
- Simplified user management - most of your users already have accounts
- GitHub Actions integration to push, publish, and deploy images
- Its cost relative to other services
Google Container Registry
As other services focus their promises on certain features important to a subset of likely customers, Google Cloud's Container Registry (GCR) is a solid all-rounder. It does everything you want from a container registry and does it really well.
As with the other big names in cloud services, you may get locked into GCR depending on the Google Cloud products you use. Google Cloud Run, for example, will only use images stored in GCR, so keep that in mind when choosing a registry service.
It's not quite as feature-boastful as AWS or Azure, but Google Cloud's GCR is a worthy offering from one of the cloud-provider 'Big 3'.
JFrog Container Registry
Built upon another JFrog product, Artifactory, JFrog Container Registry supports Docker images and Helm Charts. JFrog Container Registry also offers the option to store any package type, thanks to its generic repositories.
JFrog has both cloud and self-hosted options (or a hybrid if you wish), and promises great scalability.
Red Hat Quay
Unlike other options, Red Hat Quay offers private container registries only. This makes it a suitable option for enterprise-level customers in particular.
Cloud provider agnostic, Quay is easy to connect to systems at either end of your DevOps pipeline. Like Azure, Quay also includes geo-location options and, interestingly, supports BitTorrent for container distribution.
Red Hat also includes a pared-down registry solution in their Kubernetes platform, OpenShift. They do, however, recommend Quay for larger teams and organizations.
What's next
We talk more about containerization and cloud orchestration in some of our recent posts, including:
- The benefits of containerization
- Containerization - what you need to get started
- Monoliths versus microservices
- Microservices and frameworks
Happy deployments!