Skip to content

DockerHub Mirror

Quick Fix

Point Docker at the mirror in 3 steps

  1. Edit /etc/docker/daemon.json (use dhub-cz instead of dhub-pt if your VM is in Prague):
    {
      "registry-mirrors": ["https://dhub-pt.euronodes.com"]
    }
    
  2. Restart Docker:
    systemctl restart docker
    
  3. Verify:
    docker info | grep -A1 "Registry Mirrors"
    

That's it. docker pull nginx, docker pull python:3.12, etc. all keep working with their original names. Behind the scenes Docker fetches from our cache. The first pull of a given image populates the cache - subsequent pulls (even from other VMs) come from local SSD on our side.

Overview

We run DockerHub pull-through caches in Lisbon and Prague. Point your Docker daemon at the nearest one and your docker pull becomes faster, and you stop hitting Hub's anonymous rate limits.

Endpoints

Region URL
Lisbon (PT) https://dhub-pt.euronodes.com
Prague (CZ) https://dhub-cz.euronodes.com

Pick whichever is closest to your VM. Either works from anywhere - latency is the only difference.

What's Mirrored

Docker Hub only

Only docker.io (Docker Hub) is mirrored. Pulls from quay.io, ghcr.io, gcr.io, registry.k8s.io, etc. go directly to those upstreams and are not affected.

FAQ

Do I need an account? No. The mirror is public to all Euronodes customers.

Is there a rate limit? No on our side. Hub's own anonymous limits (100 pulls/6h per source IP) are largely absorbed by the cache.

What if the mirror is down? Nothing breaks. Docker treats a mirror as best-effort: if it cannot be reached, your pull goes straight to Docker Hub as normal. You lose the speed-up, not the image.

Can I use it from outside Euronodes? Technically yes, the endpoints are public. We don't actively block it but reserve the right to.

Private images? Not supported by anonymous mirrors. For private repos pull directly from Hub.

Is my pull traffic logged? Image names and timestamps appear in our access logs, like any registry. No payload inspection.