License & Deployment Mix: 14 tools – 8 OSS, 7 SaaS. (OSS and SaaS counts can overlap when an open-source tool also offers a vendor-hosted edition.)
What Is a Container Registry?
A container registry is a service that stores, manages, and distributes container images (Docker / OCI format). Registries are the central distribution point in container-based workflows – CI/CD pipelines push built images, and orchestration platforms (Kubernetes, Docker Swarm) pull images at deployment time.
This directory evaluates container registry tools – both self-hosted and managed/SaaS solutions. For container orchestration platforms (consumers of images), see Container Orchestration. For CI/CD pipelines (producers of images), see CI/CD. For general-purpose artifact repositories (which may include container support), see Artifact / Package Repository. For Git platforms with built-in registries, see Git Servers & Repo Management.
Container Registry vs Artifact Repository
| Concern | Registry | Artifact Repo |
|---|---|---|
| Primary scope | Container images | All artifact types |
| Protocol | OCI Distribution | Varies (Maven, npm, etc.) |
| Image scanning | Core feature | Sometimes included |
| Content trust | Notary / Cosign | GPG / Sigstore |
| Garbage collection | Layer-aware | Type-specific |
| Replication | Image-level | Artifact-level |
Key Concepts
- OCI Distribution Specification – the standard API for pushing and pulling container images; all modern registries implement this specification (successor to the Docker Registry HTTP API V2)
- Image manifest – a JSON document describing the layers, configuration, and metadata of a container image; multi-arch manifests (manifest lists / OCI index) reference platform-specific variants
- Tag – a mutable, human-readable label pointing
to a specific image manifest (e.g.,
v1.2.3,latest); tags can be overwritten - Digest – an immutable, content-addressable identifier (SHA-256 hash) for an image manifest; guarantees exact image content
- Vulnerability scanning – automated analysis of image layers against CVE databases (Trivy, Clair, Grype); identifies known vulnerabilities in OS packages and application dependencies
- Image signing / content trust – cryptographic signatures that verify image provenance and integrity; implemented via Notary v2, Cosign (Sigstore), or Docker Content Trust (DCT)
- Replication – copying images between registry instances for geo-distribution, disaster recovery, or hybrid cloud; can be push-based, pull-based, or bidirectional
- Garbage collection – reclaiming storage by removing unreferenced image layers (blobs) after tags or manifests are deleted
- Quota management – enforcing storage limits per project, repository, or user to prevent unbounded growth
- Immutable tags – a policy that prevents tag
overwriting; once
v1.2.3is pushed, it cannot be replaced, ensuring reproducible deployments - Proxy cache / pull-through cache – a registry that transparently proxies and caches images from an upstream registry (e.g., Docker Hub), reducing bandwidth and avoiding rate limits
- Helm chart repository – some registries also store Helm charts as OCI artifacts alongside container images
The information on these pages was researched by a combination of human review and large language models. To suggest an addition or correction, please contact us. Prepared by Rhodium Systems Inc., author of the ResorsIT platform — a unified IT operations management platform for IT teams and MSPs that integrates a curated suite of open-source, commercial, and SaaS applications into a single system with shared identity, single sign-on, access control, and a common audit trail. Use this catalogue only as a starting point for your own research, and review any tool carefully against your own requirements before relying on it. Catalogue data version 2026.197.
Comparison
SSO / OIDC (Authentik)
| Tool | OIDC | SAML | LDAP | CLI Auth |
|---|---|---|---|---|
| Harbor | Yes | No | Yes | Robot accounts |
| Distribution | No | No | No | htpasswd / token |
| Zot | Yes | No | Yes | OIDC + API keys |
| Dragonfly | No | No | No | Via registry |
| Quay | Yes | No | Yes | Robot accounts |
| GitLab CR | Yes | Yes | Yes | PAT / deploy token |
| Gitea CR | Yes | No | Yes | PAT / basic |
| Docker Hub | No | Yes | No | PAT / token |
| Amazon ECR | Via IAM | Via IAM | No | IAM / CLI |
| Google AR | Via GCP | Via GCP | No | gcloud / SA key |
| Azure ACR | Via Entra | Via Entra | No | az CLI / SP |
| JFrog | Yes | Yes | Yes | API key / token |
| Nexus | No | Yes | Yes | Token / basic |
| GHCR | Via GitHub | Via GitHub | No | PAT / GITHUB_TOKEN |
Best Authentik integration: Harbor, Zot, Quay, GitLab CR (native OIDC for web UI + robot/token accounts for CLI)
Core Registry Features
| Tool | OCI Dist | Multi-Arch | Helm OCI | Proxy Cache | Immutable Tags |
|---|---|---|---|---|---|
| Harbor | Yes | Yes | Yes | Yes | Yes |
| Distribution | Yes | Yes | No | Yes | No |
| Zot | Yes | Yes | Yes | Yes | Yes |
| Dragonfly | Yes | Yes | No | Yes | No |
| Quay | Yes | Yes | Yes | Yes | Yes |
| GitLab CR | Yes | Yes | Yes | Yes | Yes |
| Gitea CR | Yes | Yes | Yes | No | No |
| Docker Hub | Yes | Yes | Yes | N/A | Yes |
| Amazon ECR | Yes | Yes | Yes | Yes | Yes |
| Google AR | Yes | Yes | Yes | Yes | Yes |
| Azure ACR | Yes | Yes | Yes | No | Yes |
| JFrog | Yes | Yes | Yes | Yes | Yes |
| Nexus | Yes | Yes | No | Yes | No |
| GHCR | Yes | Yes | Yes | No | Yes |
Security Features
| Tool | Vuln Scan | Signing | RBAC | Audit Log | Quota |
|---|---|---|---|---|---|
| Harbor | Trivy | Cosign/Notary | Yes | Yes | Yes |
| Distribution | No | No | Basic | No | No |
| Zot | Trivy | Cosign/Notary | Yes | Yes | No |
| Dragonfly | No | No | Basic | Yes | No |
| Quay | Clair | Cosign | Yes | Yes | Yes |
| GitLab CR | Trivy | Cosign | Yes | Yes | Yes |
| Gitea CR | No | No | Yes | Yes | Yes |
| Docker Hub | Docker Scout | DCT | Yes | Yes | Yes |
| Amazon ECR | Inspector | Cosign/Notary | IAM | CloudTrail | No |
| Google AR | On-Demand | Cosign/Notary | IAM | Cloud Audit | Yes |
| Azure ACR | Defender | Cosign/Notary | RBAC | Monitor | No |
| JFrog | Xray | Cosign/Notary | Yes | Yes | Yes |
| Nexus | No* | No | Yes | Yes | Yes |
| GHCR | Dependabot | Cosign | Yes | Yes | Yes |
* = Nexus vulnerability scanning requires IQ Server (separate commercial product)
Best security: Harbor (Trivy + Cosign/Notary + full RBAC + quotas), JFrog Artifactory (Xray + comprehensive signing), Quay (Clair + Cosign + RBAC)
Replication & HA
| Tool | Replication | HA Mode | Geo-Dist | P2P |
|---|---|---|---|---|
| Harbor | Push/pull/bidirectional | Active-passive | Yes | No |
| Distribution | No | Stateless (LB) | No | No |
| Zot | Sync (pull) | Stateless (LB) | Yes | No |
| Dragonfly | Via cache | Scheduler HA | Yes | Yes |
| Quay | Geo-replication | Active-active | Yes | No |
| GitLab CR | Via GitLab Geo | Active-passive | Yes | No |
| Gitea CR | No | LB | No | No |
| Docker Hub | N/A (SaaS) | N/A | CDN | No |
| Amazon ECR | Cross-region | Managed | Yes | No |
| Google AR | Multi-region | Managed | Yes | No |
| Azure ACR | Geo-replication | Managed | Yes | No |
| JFrog | Multi-site | Active-active | Yes | No |
| Nexus | Push (pro) | Active-passive | Yes | No |
| GHCR | N/A (SaaS) | N/A | CDN | No |
Best replication: Harbor (flexible push/pull), Quay (geo-replication), JFrog (multi-site active-active)
Best P2P: Dragonfly (CNCF P2P image distribution)
Storage Backends
| Tool | Filesystem | S3 | GCS | Azure Blob | Other |
|---|---|---|---|---|---|
| Harbor | Yes | Yes | Yes | Yes | Swift |
| Distribution | Yes | Yes | Yes | Yes | Swift |
| Zot | Yes | Yes | No | No | No |
| Dragonfly | Yes | S3 | No | No | OSS |
| Quay | No | Yes | Yes | Yes | Swift, Ceph |
| GitLab CR | Yes | Yes | Yes | Yes | Swift |
| Gitea CR | Yes | S3 | Yes | Yes | No |
| Docker Hub | N/A | N/A | N/A | N/A | Managed |
| Amazon ECR | N/A | N/A | N/A | N/A | Managed |
| Google AR | N/A | N/A | N/A | N/A | Managed |
| Azure ACR | N/A | N/A | N/A | N/A | Managed |
| JFrog | Yes | Yes | Yes | Yes | Many |
| Nexus | Yes | Yes | No | Yes | No |
| GHCR | N/A | N/A | N/A | N/A | Managed |
Deployment & Licensing
| Tool | License | Docker | K8s Helm | VM/Bare | Min RAM |
|---|---|---|---|---|---|
| Harbor | Apache-2.0 | Yes | Yes | No | 4 GB |
| Distribution | Apache-2.0 | Yes | Yes | Yes | 256 MB |
| Zot | Apache-2.0 | Yes | Yes | Yes | 256 MB |
| Dragonfly | Apache-2.0 | Yes | Yes | No | 2 GB |
| Quay | Apache-2.0 | Yes | Yes (Operator) | No | 4 GB |
| GitLab CR | MIT (core) | Yes | Yes | Yes | Part of GitLab |
| Gitea CR | MIT | Yes | Yes | Yes | Part of Gitea |
| Docker Hub | Proprietary | N/A | N/A | N/A | N/A |
| Amazon ECR | Proprietary | N/A | N/A | N/A | N/A |
| Google AR | Proprietary | N/A | N/A | N/A | N/A |
| Azure ACR | Proprietary | N/A | N/A | N/A | N/A |
| JFrog | Proprietary | Yes | Yes | Yes | 4 GB |
| Nexus | Prop/OSS | Yes | Yes | Yes | 4 GB |
| GHCR | Proprietary | N/A | N/A | N/A | N/A |
Monitoring Integration
| Tool | Prometheus | Health EP | Logs | SNMP |
|---|---|---|---|---|
| Harbor | Yes | Yes | Stdout/syslog | No |
| Distribution | Yes | Yes | Stdout | No |
| Zot | Yes | Yes | Stdout | No |
| Dragonfly | Yes | Yes | Stdout | No |
| Quay | Yes | Yes | Stdout | No |
| GitLab CR | Yes | Yes | Stdout | No |
| Gitea CR | Yes | Yes | Stdout | No |
| Docker Hub | No | No | API | No |
| Amazon ECR | CloudWatch | Yes | CloudTrail | No |
| Google AR | Cloud Mon | Yes | Cloud Audit | No |
| Azure ACR | Monitor | Yes | Diagnostics | No |
| JFrog | Yes | Yes | Stdout/files | No |
| Nexus | Yes | Yes | Files | No |
| GHCR | No | No | API | No |
Best monitoring integration: Harbor, Zot, Quay, Distribution (native Prometheus metrics + structured stdout logs for Fluent Bit + health endpoints)
Garbage Collection
| Tool | Online GC | Scheduled GC | Layer-Aware | Tag Policies |
|---|---|---|---|---|
| Harbor | Yes | Yes | Yes | Yes |
| Distribution | Offline | Manual | Yes | No |
| Zot | Yes | Yes | Yes | No |
| Dragonfly | N/A | N/A | N/A | N/A |
| Quay | Yes | Yes | Yes | Yes |
| GitLab CR | Yes | Yes | Yes | Yes |
| Gitea CR | Yes | Yes | Yes | No |
| Docker Hub | Managed | Managed | Managed | Yes |
| Amazon ECR | Managed | Yes | Managed | Yes |
| Google AR | Managed | Yes | Managed | Yes |
| Azure ACR | Managed | Yes | Managed | Yes |
| JFrog | Yes | Yes | Yes | Yes |
| Nexus | Yes | Yes | Yes | Yes |
| GHCR | Managed | Managed | Managed | No |
Pricing
Self-Hosted (Free / OSS)
| Tool | License | Pricing |
|---|---|---|
| Harbor | Apache-2.0 | Free |
| Distribution | Apache-2.0 | Free |
| Zot | Apache-2.0 | Free |
| Dragonfly | Apache-2.0 | Free |
| Quay | Apache-2.0 | Free (self-hosted) |
| GitLab CR | MIT (core) | Free (part of GitLab) |
| Gitea CR | MIT | Free (part of Gitea) |
Commercial / Managed
| Tool | Pricing |
|---|---|
| Docker Hub | Free tier; Pro $5/mo; Team $9/user/mo; Business $24/user/mo |
| Amazon ECR | $0.10/GB/month storage + data transfer |
| Google AR | $0.10/GB/month storage + network egress |
| Azure ACR | Basic $0.167/day; Standard $0.667/day; Premium $1.667/day |
| JFrog | Free tier; Pro from $150/mo; Enterprise quote |
| Nexus | OSS free; Pro from ~$120/year |
| GHCR | Free for public; 500 MB free private; then $0.25/GB |
Tools
14 tools.
Amazon ECR
Amazon Elastic Container Registry (ECR) is AWS’s managed OCI-compliant container image registry, with IAM-based access, vulnerability scanning, lifecycle policies, and cross-region replication.
License: Proprietary (proprietary) · Kind: web · Deploy: saas, docker, native · SSO: none
Azure Container Registry
Azure Container Registry (ACR) is the Azure-native container registry service. It provides OCI-compliant image storage integrated with Microsoft Entra ID (Azure AD) for access control, Microsoft Defender for Containers for vulnerability sca…
License: Proprietary (proprietary) · Kind: web · Deploy: saas, docker, native · SSO: none
Distribution (Docker Registry)
Distribution (formerly Docker Registry v2) is the reference implementation of the OCI Distribution Specification. It provides the core image storage and distribution layer that many other registries (Harbor, GitLab CR) build upon.
License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none
Docker Hub
Docker Hub is the default public container registry and the largest repository of container images worldwide.
License: Proprietary (proprietary) · Kind: web · Deploy: saas · SSO: none
Dragonfly
Dragonfly is a P2P-based image and file distribution system rather than a traditional container registry.
License: Apache-2.0 (OSS) · Kind: web · Deploy: native, k8s · SSO: none
Gitea Container Registry
Gitea Container Registry is a built-in package registry integrated into the Gitea (and Forgejo) Git platform.
License: MIT (OSS) · Kind: web · Deploy: docker, native · SSO: none
GitHub Container Registry (GHCR)
GitHub Container Registry (GHCR) is part of GitHub Packages, providing OCI-compliant container image storage integrated with the GitHub platform.
License: Proprietary (proprietary) · Kind: web · Deploy: saas · SSO: none
GitLab Container Registry
GitLab Container Registry is a built-in container registry integrated directly into the GitLab platform.
License: MIT (OSS) · Kind: web · Deploy: native · SSO: none
Google Artifact Registry
Google Artifact Registry (GAR) is Google Cloud’s multi-format artifact management service and the successor to Google Container Registry (GCR).
License: Proprietary (proprietary) · Kind: web · Deploy: saas · SSO: none
Harbor
Harbor is the most feature-complete open-source container registry available. Originally developed by VMware and now a CNCF graduated project, it wraps the OCI Distribution (Docker Registry) with an enterprise layer providing vulnerability…
License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none
JFrog Artifactory
JFrog Artifactory is a universal artifact repository that supports 30+ package formats including Docker/OCI container images, Helm charts, Maven, npm, PyPI, Go, NuGet, and many more.
License: Proprietary (proprietary) · Kind: web · Deploy: native, saas · SSO: none
Nexus Repository (Sonatype)
Sonatype Nexus Repository is a multi-format artifact repository that supports Docker/OCI container images alongside Maven, npm, PyPI, NuGet, Go, Helm, APT, YUM, and other formats.
License: EPL-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none
Quay
Quay is an enterprise container registry originally built by CoreOS, acquired by Red Hat, and now maintained as the open-source Project Quay.
License: Apache-2.0 (OSS) · Kind: web · Deploy: native, k8s · SSO: none
Zot
Zot is an OCI-native container registry built from scratch to fully comply with the OCI Distribution Specification.
License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none