For a pull-through cache for container registries, the first results are spegel-org/spegel, goharbor/harbor and distribution/distribution. daocloud/public-image-mirror and docker/distribution round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Self-hosted solutions for caching and mirroring upstream container images to improve deployment speed and reliability.
Spegel is a container registry cache and peer-to-peer distribution system for Kubernetes. It functions as an OCI image mirror and content addressable store that shares image layers between cluster nodes to reduce external registry traffic and latency. The project implements a distributed hash table to locate image digests across the network, allowing nodes to retrieve content from peers rather than repeated external downloads. This architecture mitigates registry rate-limiting and provides offline image availability to prevent workload failures during registry outages. The system covers capa
Spegel is a Kubernetes-native container registry cache that caches and shares image layers between cluster nodes, reducing external pulls and supporting offline availability—directly fitting the need for a self-hosted mirror/cache proxy, though it currently lacks explicit garbage collection and authentication features.
Harbor is a self-hosted, enterprise-grade container registry platform designed to store, sign, and scan container images and cloud-native artifacts. It provides a centralized repository that integrates directly with Kubernetes environments to manage the full lifecycle of software artifacts, from initial storage to production deployment. The platform distinguishes itself through a focus on security, governance, and multi-site availability. It features a pluggable vulnerability scanning framework that allows for the integration of various security engines, alongside content trust mechanisms tha
Harbor is a self-hosted, OCI-compliant container registry with built-in replication and pull-through caching for mirroring images from upstream registries, plus garbage collection, authentication, and multi-upstream support—exactly what is needed for air-gapped environments or caching.
Distribution is an open-source container image registry that implements the OCI Distribution Specification, enabling any OCI-compatible client to push, pull, and manage container images over standard protocols. It serves as a content distribution toolkit for packaging, shipping, storing, and delivering container content across networked environments, storing and retrieving content by its cryptographic hash for integrity and deduplication. The registry separates image metadata from bulk data to enable efficient validation and partial pulls, and supports resumable blob uploads with chunked tran
distribution/distribution is the reference OCI container registry that can be configured as a pull-through cache proxy for mirroring images, covering self-hosting, authentication, and garbage collection, but its native multi-upstream support and replication features are less complete than dedicated mirror tools like Harbor.
Public Image Mirror is a container registry proxy service designed to cache remote container images locally. By intercepting image pull requests and serving content from internal storage, it reduces dependency on external registry availability and minimizes external bandwidth consumption. The service implements standard container registry protocols, allowing existing container runtimes to interact with the cache as if it were a native registry. It utilizes a content-addressable storage layer to manage image layers as immutable blobs, ensuring data integrity and deduplication while resolving m
DaoCloud/public-image-mirror is a container registry proxy that caches remote images locally by intercepting pull requests and serving from content-addressable storage, making it a direct fit for self-hosted mirroring and caching in air-gapped or latency-sensitive environments.
This project is a container image registry and server-side storage system designed to house container images, layers, and manifests. It functions as an OCI compliant registry server that adheres to the Open Container Initiative Distribution Specification to store and deliver content over HTTP. The system provides a self-hosted solution for managing private libraries of container images within professional-grade infrastructure. It is designed to enable the development of custom registries by extending a base toolkit with specialized libraries and business logic. The registry covers image dist
docker/distribution is a self-hostable OCI-compliant registry server that can be configured as a pull-through cache and mirror for container images, covering the core requirements of this search, though its primary identity is a registry rather than a dedicated mirror proxy.
This project provides a centralized infrastructure management solution for container environments, designed to streamline registry authentication, image caching, and network traffic routing. By acting as a transparent proxy and registry mirror, it intercepts container engine requests to enforce consistent security policies and reduce external bandwidth consumption. The system simplifies access management by centralizing credentials for multiple external container registries, eliminating the need for individual client-side configurations. It further automates infrastructure setup through the i
This is an HTTPS proxy that caches Docker container images from any upstream registry (DockerHub, quay.io, etc.) in a self-hosted manner, fitting the need for a cache/mirror proxy, though it lacks explicit garbage collection and may have limited authentication features.
Skopeo is an OCI container image manager and registry client designed for inspecting, copying, and signing container images across different registries and storage backends. It enables the manipulation of container images using direct API calls to registries, operating independently of a local container daemon or runtime. The tool provides specialized capabilities for container image mirroring and synchronization, specifically supporting the mirroring of external repositories to internal registries for air-gapped environments. It also functions as a container image signing tool, allowing for
Skopeo is a daemonless CLI for inspecting, copying, and mirroring container images between registries, which can help populate a local registry for air-gapped setups, but it is not a pull-through cache proxy that transparently caches images on pull as the visitor likely wants.
This project is a set of deployment tools for initializing and configuring local Kubernetes environments specifically within Docker Desktop for Mac and Windows. It functions as a local cluster bootstrapper that installs essential components including the Kubernetes dashboard, ingress controllers, and the Istio service mesh. The toolkit includes a container image mirroring system that remaps registries to mirrors, allowing the environment to bypass network restrictions and accelerate image pulls during the bootstrapping process. Broad capabilities cover microservices environment setup, includ
This repository is a Kubernetes environment bootstrapper for Docker Desktop that happens to include image mirroring for its own setup, but it is not a general-purpose self-hosted container registry mirror or cache proxy you can deploy independently.
Skopeo is a command line utility for inspecting, copying, and managing OCI and Docker container images across registries and local storage. It functions as a container image tool and registry manager that performs these operations without requiring a background daemon to be running on the host. The tool specializes in daemonless image manipulation, allowing users to retrieve metadata, manifests, and tags from remote registries without pulling the full image locally. It provides capabilities for mirroring external repositories to internal registries for air-gapped deployments and manages the t
Skopeo is a CLI utility for copying and managing container images between registries — useful for one-shot mirroring tasks — but it is not a running pull-through cache proxy service that transparently caches images on demand and serves clients.
Kraken is a distributed blob store and peer-to-peer Docker registry designed for the high-throughput distribution of container images. It functions as a decentralized content delivery network that shares image layers across a network of nodes to prevent bottlenecks at a central registry. The system utilizes peer-to-peer blob distribution and distributed content addressing to maintain download speeds across large clusters. It implements asynchronous rule-based replication to synchronize image data between disparate geographical clusters. The project covers pluggable external blob storage inte
Kraken is a distributed peer-to-peer container registry focused on high-throughput image distribution within a cluster, but it is not designed as a pull-through cache proxy that mirrors images from external upstream registries.
Containerd is a daemon-based container runtime that manages the complete lifecycle of containers on a host system. It functions as a core orchestration backend, handling image distribution, storage, and process execution while adhering to industry-standard specifications for container execution and configuration. The project is distinguished by its modular, plugin-based architecture, which allows for the extension of storage, runtime, and networking capabilities without requiring a full daemon recompile. It utilizes a shim-based execution model to delegate low-level operations, ensuring isola
Containerd is a container runtime that manages image distribution and storage on a host, but it is not a self-hosted registry mirror or caching proxy designed to cache and replicate upstream images for air-gapped environments.
Watchtower is a container-based solution designed to automate the lifecycle management of Docker applications. It functions as a background service that monitors running containers, detects when new base image versions are available in registries, and automatically redeploys the containers to ensure they remain synchronized with the latest builds. The project distinguishes itself through its ability to orchestrate complex deployment workflows and maintain service availability during updates. It interacts directly with the container runtime to manage service dependencies and restart sequences,
Watchtower automates container updates by pulling new images from registries and redeploying containers, but it does not mirror or cache images locally for air-gapped environments or pull performance—it's an update manager, not a registry cache proxy.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| spegel-org/spegel | 3.5K | Go | mit | |
| goharbor/harbor | 28.8K | Go | Apache-2.0 | |
| distribution/distribution |
| 10.5K |
| Go |
| Apache-2.0 |
| daocloud/public-image-mirror | 13.2K | Shell | apache-2.0 |
| docker/distribution | 10.5K | Go | Apache-2.0 |
| rpardini/docker-registry-proxy | 1.2K | Shell | Apache-2.0 |
| containers/skopeo | 11K | Go | Apache-2.0 |
| denverdino/k8s-for-docker-desktop | 5.1K | PowerShell | — |
| projectatomic/skopeo | 11K | Go | Apache-2.0 |
| uber/kraken | 6.7K | Go | Apache-2.0 |