public-image-mirror is a container image mirror service that accelerates downloads of container images hosted on foreign registries.
The tool solves the problem of slow image downloads from overseas registries like Google Container Registry by providing a mirrored service with local caching. It works by offering simple prefix-based URL mappings that redirect image pulls to cached copies, with support for registries including Docker Hub, GCR, GitHub Container Registry, Quay, Microsoft Container Registry, and others. The service uses lazy-loading to maintain hash consistency with source repositories and implements caching with a 30-day retention policy for blobs and 1-hour in-memory caching for manifests.
Teams operating in regions with slow international connectivity should consider this tool, particularly those running Kubernetes clusters or Docker environments that frequently pull images from public registries. The recommended approach is adding a prefix to image names rather than using registry mirror configuration, though prefix replacement is supported for specific registries. The service includes best practices documentation for deploying local network caches, accelerating Kubernetes installations, and configuring container runtimes like Containerd and Docker. Users should prefer pulling images by SHA256 digest over mutable tags, schedule pull operations during off-peak hours, and be aware that mutable tags may serve stale data while background synchronization occurs.
The project maintains active monitoring of synchronization status and service health, with a publicly accessible queue showing sync records retained for one hour and status dashboards tracking service availability. The tool is backed by a separate backend codebase and includes documentation for local cache deployment strategies. Rate limiting and whitelisting policies are documented in the issue tracker, and the project accepts feature requests for additional registry support through its issue system.