Guide des mirrors Docker en Chine 2026 : résoudre les timeouts pull en 5 minutes

Mise à jour de juin 2026 : cet article a été recalibré selon la documentation officielle Docker sur les limites d’utilisation de Docker Hub et le pull-through cache. La recommandation actuelle n’est plus de compter sur un seul mirror public, mais d’identifier d’abord la couche réseau, puis de choisir entre mirror communautaire, proxy HTTP ou cache d’entreprise. Un changement facile à manquer : depuis le 1er avril 2025, Docker Hub applique des limites de débit (10/heure par IP sans authentification, 100/heure avec un compte gratuit) ; si l’échec est un 429 et non un timeout, faites d’abord docker login plutôt que de changer de mirror.
Vendredi à 15 h, je fixais le terminal où tournait docker pull nginx:latest. Le curseur clignotait depuis dix bonnes minutes, avant de me cracher un gros i/o timeout en rouge. Franchement, ce n’était pas la première fois. Depuis juin, ça s’intensifie — le réseau va bien, le navigateur est rapide, mais l’image Docker ne descend pas.
Après avoir parcouru les tutos en ligne, les mirrors Aliyun et NetEase recommandés ne changeaient rien. J’ai appris ensuite que le 6 juin 2024, les accélérateurs Docker en Chine ont presque tous disparu — Aliyun, Tencent Cloud, Baidu Cloud, plus les miroirs universitaires : arrêt de service ou accès réservé au réseau interne.
Vous connaissez peut-être ce sentiment : une pile de tutos 2023 « solution parfaite pour Docker lent », vous configurez daemon.json, redémarrez Docker, relancez docker pull plein d’espoir… et timeout encore. Vraiment décourageant.
La bonne nouvelle : il reste des mirrors maintenus par la communauté, testés et fonctionnels. Cet article liste ceux encore utilisables en décembre 2025, explique comment configurer daemon.json et comment dépanner. Sans détour, on y va.
Pourquoi les mirrors Docker ont-ils massivement cessé de fonctionner ?
Avant les solutions, il faut comprendre ce qui s’est passé. Votre mirror Aliyun qui marchait bien ne peut pas tomber en panne sans raison.
Le 6 juin 2024 a marqué un tournant. Ce jour-là, presque tous les services d’accélération Docker Hub en Chine ont annoncé arrêt ou restriction. Aliyun, NetEase, Tencent Cloud, Baidu Cloud — les géants — ont perdu leurs mirrors quasi du jour au lendemain. Les universités (Nanjing, Shanghai Jiao Tong, USTC) ont fermé leurs miroirs ou les ont limités au campus.
Honnêtement, j’étais surpris. Ces mirrors tournaient depuis des années, puis plus rien. Double pression : conformité d’un côté, coût d’exploitation d’un service haute disponibilité de l’autre.
Si vous visitez ces anciennes adresses aujourd’hui, c’est 404 ou timeout. Si daemon.json contient encore registry.cn-hangzhou.aliyuncs.com ou hub-mirror.c.163.com, c’est inutile.
Et Docker Hub en direct ? Techniquement possible, mais en Chine, c’est lent au point de douter. Quelques centaines de Mo, une demi-heure minimum ; timeout courant.
Mirrors encore disponibles en décembre 2025
Pas de panique : malgré la chute des mirrors des grands acteurs, la communauté maintient encore des accélérateurs gratuits. J’ai testé récemment ; voici la liste à fin décembre 2025.
Liste des mirrors disponibles
| Nom du mirror | Adresse | Description |
|---|---|---|
| Xuanyuan Mirror (gratuit) | https://docker.xuanyuan.me | Maintenu par la communauté, gratuit, bonne réactivité |
| Xuanyuan Mirror (pro) | https://xuanyuan.cloud | Connexion requise, vitesse plus stable |
| DaoCloud | https://docker.m.daocloud.io | Mirror historique, relativement stable |
| 1ms.run | https://docker.1ms.run | Maintenu par la communauté |
| 1panel | https://docker.1panel.live | Maintenu par la communauté |
| rat.dev | https://hub.rat.dev | Maintenu par la communauté |
| aigc2d | https://docker-mirror.aigc2d.com | Maintenu par la communauté |
Recommandation : Xuanyuan et DaoCloud m’ont paru les plus stables. La version gratuite docker.xuanyuan.me est déjà rapide ; pour plus de stabilité, essayez la version pro.
Quelques rappels
-
Services maintenus à frais propres par la communauté. Contrairement à Aliyun ou Tencent Cloud, ils peuvent s’arrêter à tout moment. Utilisez-les avec modération.
-
Toutes les images ne sont pas accélérées. Certains mirrors ne couvrent que les images de base (nginx, mysql, redis) ou appliquent une liste blanche. Timeout sur une image rare ? Ce n’est pas forcément le mirror — essayez un autre ou Docker Hub direct.
-
Configurez plusieurs mirrors. daemon.json accepte plusieurs registry-mirrors ; Docker essaie dans l’ordre. Si le premier échoue, fallback automatique vers le suivant.
Ces adresses viennent du dépôt GitHub dongyubin/DockerHub, mis à jour régulièrement — je recommande de le mettre en favori.
Configurer daemon.json pas à pas
Avec les adresses en main, la configuration : un fichier JSON et un redémarrage Docker. Voici les trois systèmes principaux.
Linux (le plus courant)
La plupart des serveurs et postes de dev tournent sous Linux — c’est le cas le plus important.
1. Créer ou éditer le fichier de config
Emplacement : /etc/docker/daemon.json (créez-le s’il n’existe pas)
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
2. Écrire la configuration
Copiez ce JSON — j’ai mis trois mirrors en secours :
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.m.daocloud.io",
"https://docker.1ms.run"
]
}
Enregistrez et quittez (vi : ESC, puis :wq).
3. Redémarrer Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
La première commande recharge systemd, la seconde redémarre Docker. Les deux sont obligatoires pour appliquer la config.
macOS (Docker Desktop)
Sur Mac, Docker Desktop propose une interface graphique, plus simple.
1. Ouvrir les paramètres Docker Desktop
Cliquez sur l’icône Docker dans la barre de menus → Settings (ou Preferences)
2. Trouver Docker Engine
Menu de gauche : Docker Engine — un éditeur JSON s’affiche.
3. Modifier le JSON
Ajoutez le champ registry-mirrors (si d’autres options existent, pensez à la virgule) :
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.m.daocloud.io"
],
"autres configs existantes": "inchangées"
}
4. Appliquer et redémarrer
Cliquez Apply & Restart en bas à droite ; Docker redémarre et applique la config.
Windows (Docker Desktop)
Quasi identique à macOS, via Docker Desktop.
1. Ouvrir les paramètres
Clic droit sur l’icône Docker dans la barre des tâches → Settings
2. Aller dans Docker Engine
Menu de gauche : Docker Engine
3. Modifier le JSON
Ajoutez registry-mirrors, même contenu que sur macOS.
4. Appliquer et redémarrer
Cliquez Apply & Restart et attendez la fin du redémarrage.
Points d’attention
- JSON valide. Erreur la plus fréquente : virgule en trop ou manquante — utilisez un validateur JSON.
- Retirez les mirrors obsolètes. Aliyun, NetEase dans daemon.json ? Supprimez-les, ils ne servent plus.
- Plusieurs secours. Un seul mirror peut être instable ; 2 à 3 adresses améliorent le taux de succès.
Vérifier que la configuration est active
Avant de tirer des images, vérifiez que la config est bien prise en compte.
Méthode 1 : commande docker info
Le plus rapide : docker info, puis la ligne Registry Mirrors.
docker info | grep -A 5 "Registry Mirrors"
Si tout va bien, vous devriez voir :
Registry Mirrors:
https://docker.xuanyuan.me/
https://docker.m.daocloud.io/
https://docker.1ms.run/
Vos adresses apparaissent ? La config est active. Sinon, vérifiez le JSON et le redémarrage de Docker.
Méthode 2 : pull réel
La config affichée ne suffit pas — tirez une image pour juger la vitesse.
docker pull nginx:latest
nginx est une image de base présente sur presque tous les mirrors.
En cas de succès, la barre de progression avance vite — quelques dizaines de secondes pour ~100 Mo. Loin des dix minutes de timeout.
Mon test récent avec Xuanyuan : nginx de 0 à 100 % en moins de 30 secondes — plutôt convaincant.
Et si c’est encore lent ?
Ne paniquez pas — consultez la section dépannage ci-dessous.
Dépannage courant
Même avec une config correcte, des problèmes bizarres arrivent. Voici les pièges que j’ai rencontrés.
Problème 1 : docker info ne montre pas les mirrors
Symptôme : docker info | grep "Registry Mirrors" ne renvoie rien ou une liste vide.
Causes et solutions :
-
Format daemon.json incorrect — la plus fréquente. JSON strict : une virgule ou un guillemet en trop suffit.
- Solution : validez avec JSONLint.
- Erreurs courantes : virgule après le dernier élément du tableau, accolade non fermée.
-
Docker non redémarré — modifier le fichier ne suffit pas.
- Solution : Linux
sudo systemctl restart docker; Docker Desktop → Apply & Restart.
- Solution : Linux
-
Permissions du fichier — Docker ne peut pas lire daemon.json.
- Solution :
sudo chmod 644 /etc/docker/daemon.json
- Solution :
Problème 2 : timeout malgré la config
Symptôme : docker info affiche les mirrors, mais docker pull time out encore.
Causes et solutions :
-
Image hors liste blanche — tous les mirrors n’accélèrent pas tout.
- Solution : testez nginx, redis ; s’ils passent, la config est OK — changez de mirror ou utilisez un proxy.
-
Mirror temporairement indisponible — charge ou maintenance.
- Solution : plusieurs mirrors dans daemon.json pour le fallback ; réessayez plus tard.
-
Réseau local — pare-feu, proxy, DNS.
- Solution :
ping docker.xuanyuan.me, vérifiez le pare-feu.
- Solution :
Problème 3 : échec au redémarrage de Docker
Symptôme : systemctl restart docker échoue, Docker ne démarre plus.
Causes et solutions :
- daemon.json invalide bloque le démarrage
- Solution : logs
journalctl -u docker.service - Urgence : renommez ou supprimez daemon.json, redémarrez, puis corrigez la config.
- Solution : logs
sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak
sudo systemctl restart docker
Problème 4 : certaines images spéciales ne passent pas
Symptôme : nginx et redis OK, mais images privées ou d’un registry particulier en échec.
Solution :
- L’accélérateur ne couvre que les images publiques Docker Hub. Pour gcr.io, quay.io ou un registry privé, il ne sert à rien.
- Options :
- Proxy HTTP dans daemon.json :
http-proxyethttps-proxy - VPN ou service proxy
- Sites communautaires qui republient des images gcr.io en Chine
- Proxy HTTP dans daemon.json :
Alternatives si rien ne marche
- Proxy Docker — HTTP proxy dans daemon.json pour sortir via proxy.
- Registry privé local — Harbor ou équivalent, synchronisation manuelle des images nécessaires.
- Changer d’horaire — parfois c’est le pic réseau ; réessayez plus tard.
Restez calme, isolez l’étape en cause, dépannez pas à pas — on finit toujours par trouver.
Conclusion
Voici l’essentiel :
Points clés :
- Après le 6 juin 2024, Aliyun, NetEase, Tencent Cloud et les mirrors majeurs sont hors jeu
- Il reste surtout des mirrors communautaires : Xuanyuan, DaoCloud, etc.
- Modifiez daemon.json, ajoutez registry-mirrors, redémarrez Docker
- Configurez plusieurs mirrors en secours
- En cas de souci : JSON, état du service Docker, réseau
Ces mirrors communautaires sont moins stables que ceux des géants, mais ils débloquent la situation. Je ne sais pas combien de temps ils tiendront — gardez le dépôt GitHub (dongyubin/DockerHub) sous la main.
Si cet article vous a aidé, partagez-le. Questions en commentaire — je répondrai.
Dernier mot : ces ressources gratuites sont maintenues à frais propres — ne les abusez pas. Personne n’a la vie facile.
Tableau de décision disponibilité 2026
| Scénario | Solution privilégiée | Alternative | Critère de validation |
|---|---|---|---|
| Timeout occasionnel en dev personnel | 2-3 registry-mirrors communautaires | Proxy HTTP/HTTPS pour le daemon Docker | docker pull nginx:latest se termine de façon stable |
| Pulls fréquents en CI/CD | Pull-through cache privé ou Harbor | Images de base en cache dans l’artifact store | Ne pas dépendre de mirrors publics changeants |
| Réseau d’entreprise / proxy transparent | Vérifier proxy, certificats et DNS d’abord | Puis registry mirror | Le navigateur OK ≠ le daemon Docker OK |
| Image rare ou registry privé | Accès direct + proxy | Sync manuelle vers registry privé | Mirror public = Docker Hub public uniquement |
Pour aller plus loin : rendre le problème observable
- Docker Hub : usage et limites (doc officielle)
- Test de vitesse et bascule automatique des mirrors Docker
- Guide d’accès Docker au réseau de l’hôte
- Gestion et dépannage des logs Docker
Processus de dépannage des mirrors Docker en 2026
Identifiez d'abord la couche réseau, puis choisissez registry mirror, proxy ou cache privé.
⏱️ Estimated time: 5 min
- 1
Step 1: Confirmer le réseau réel du daemon Docker
Utilisez docker pull, docker info et systemctl status docker pour déterminer si le problème vient du daemon Docker, et non du proxy du navigateur ou du terminal. - 2
Step 2: Configurer mirror ou proxy
Sur un poste de dev personnel, configurez plusieurs registry-mirrors ; en réseau d'entreprise, donnez la priorité à un proxy HTTP/HTTPS pour le daemon Docker ou à un pull-through cache auto-hébergé. - 3
Step 3: Valider avec de vraies images
Testez avec des images publiques comme nginx ou redis, puis validez avec vos images métier ; si une image peu courante échoue, ne concluez pas trop vite que tous les mirrors sont hors service.
FAQ
Comment choisir un mirror Docker en 2026 ?
Configurer plusieurs registry-mirrors dans daemon.json, est-ce utile ?
Quand faut-il auto-héberger un pull-through cache ?
Toujours en timeout après configuration, comment dépanner ?
J'ai configuré un mirror mais j'ai toujours une limite de débit ou un 429, que faire ?
9 min de lecture · Publié le: 17 déc. 2025 · Mis à jour le: 27 juil. 2026
Guide pratique Docker
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
Modes réseau Docker en pratique : guide de choix entre bridge, host et overlay
Comparaison approfondie des trois modes réseau Docker : performances, cas d'usage et configuration, avec arbre de décision et données de benchmark. Bridge par défaut en mono-hôte, host pour la performance, overlay obligatoire en multi-hôtes.
Partie 22 sur 38
Suivant
Test de vitesse des miroirs Docker : 3 méthodes + script de bascule automatique
Les pulls Docker sont lents ? Cet article détaille 3 méthodes de benchmark, fournit des scripts Shell et Python pour basculer automatiquement vers le meilleur miroir, et vous aide à dire adieu aux timeouts docker pull.
Partie 24 sur 38



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire