Container Registry Mirrors
This root page is the end-user README for the container registry mirror running on this server. Use the mirror hostnames below to pull images through the local cache.
Current routing mode: Domain Replacement Mode.
Replace the original registry hostname with the mirror hostname, and keep the rest of the image path unchanged.
Replace the original registry hostname with the mirror hostname, and keep the rest of the image path unchanged.
Mirror domains
Docker Hub
docker.2s.lol
docker pull docker.2s.lol/library/nginx:latest
GitHub Container Registry
ghcr.2s.lol
docker pull ghcr.2s.lol/owner/image:tag
Quay
quay.2s.lol
docker pull quay.2s.lol/org/image:tag
Kubernetes Registry
k8s.2s.lol
docker pull k8s.2s.lol/pause:3.10
Docker Hub quick start
Docker supports a registry mirror setting for Docker Hub. You can either configure Docker once, or use the mirror hostname directly in image names.
- Update
/etc/docker/daemon.json:
{
"registry-mirrors": ["https://docker.2s.lol/"]
}
- Restart Docker:
sudo systemctl restart docker.service
- Pull images normally, or use the mirror hostname explicitly:
docker pull nginx:latest docker pull docker.2s.lol/library/nginx:latest
Hostname replacement examples
Only replace the registry hostname. Keep the organization, repository, and tag the same.
| Registry | Original image | Mirror image |
|---|---|---|
| Docker Hub | nginx:latest |
docker.2s.lol/library/nginx:latest |
| Docker Hub | grafana/grafana:latest |
docker.2s.lol/grafana/grafana:latest |
| Docker Hub | registry-1.docker.io/foo/bar:latest |
docker.2s.lol/foo/bar:latest |
| Docker Hub | docker.io/foo/bar:latest |
docker.2s.lol/foo/bar:latest |
| GitHub Package Registry | ghcr.io/foo/bar:latest |
ghcr.2s.lol/foo/bar:latest |
| Red Hat Quay | quay.io/foo/bar:latest |
quay.2s.lol/foo/bar:latest |
| Kubernetes Container Registry | registry.k8s.io/foo/bar:latest |
k8s.2s.lol/foo/bar:latest |
How to use this mirror
- Pick the mirror hostname that matches the upstream registry.
- Replace only the original registry hostname in your image reference.
- Pull with your normal client, such as Docker, containerd, or nerdctl.
# Docker Hub docker pull docker.2s.lol/library/redis:7 # GitHub Container Registry docker pull ghcr.2s.lol/owner/image:latest # Quay docker pull quay.2s.lol/prometheus/prometheus:latest # Kubernetes Registry docker pull k8s.2s.lol/pause:3.10
Notes
- The first pull may be slower because the mirror needs to fetch the image from the upstream registry.
- Some upstream registries still require authentication, even when accessed through the mirror.
- The root domain
m.2s.lolserves this README. Registry traffic should use the dedicated subdomains.