Changer le thème

Guide d'installation Docker 2025 : de permission denied au fonctionnement réussi

Easton editorial illustration: service mesh rail yard

Troisième tentative d’installer Docker — la première fois, erreur WSL 2 ; la deuxième, le démon refuse de démarrer ; enfin installé, docker ps renvoie permission denied.

L’installation de Docker devrait être simple : télécharger, double-cliquer, suivre l’assistant. En réalité, Windows exige WSL 2 et Hyper-V, Mac distingue Intel et Apple Silicon, Linux piège sur les dépendances et les groupes utilisateurs. Chaque plateforme a ses pièges réservés.

Cet article synthétise mes erreurs. J’ai listé les 10+ problèmes les plus fréquents sur Windows, Mac et Linux, avec des solutions à jour pour 2025 (beaucoup de tutoriels 2020-2022 sont obsolètes). Sur quelle plateforme et avec quelle erreur ? Continuez — il y a une solution pour vous.

Problèmes courants sur Windows

Sur Windows, installer Docker, c’est surtout négocier avec WSL 2 et Hyper-V. Docker Desktop exige désormais le backend WSL 2 ; version système incorrecte ou virtualisation désactivée, et vous obtenez des messages d’erreur cryptiques.

Problème 1 : WSL 2 incomplet

Le plus fréquent chez les utilisateurs Windows. Vous lancez Docker Desktop, une fenêtre annonce « WSL 2 installation is incomplete », puis plus rien.

L’erreur ressemble à :

Docker Desktop requires WSL 2 backend
WSL 2 installation is incomplete

Trois causes : Windows trop ancien (inférieur à 10.0.19041), WSL non activé, ou virtualisation désactivée dans le BIOS.

Comment corriger :

Étape 1 — vérifier la version Windows. Win+R, winver. Il faut au minimum Windows 10 22H2 (build 19045) ou Windows 11 23H2 (build 22631+). Sinon, mettre à jour le système.

Étape 2 — activer WSL. Panneau de configuration → Programmes et fonctionnalités → Activer ou désactiver des fonctionnalités Windows. Cocher « Sous-système Windows pour Linux » et « Plateforme de machine virtuelle ». Redémarrage obligatoire.

Étape 3 — mettre à jour WSL. PowerShell en administrateur :

wsl --update
wsl --set-default-version 2

La première commande met WSL à jour (2.1.5+ requis), la seconde définit WSL 2 par défaut.

Si ça ne suffit pas, entrer dans le BIOS (Del ou F2 selon la carte mère), activer Virtualization Technology ou Intel VT-x/AMD-V (Enabled).

Problème 2 : Conflit Hyper-V

Parfois :

HCS_E_HYPERV_NOT_INSTALLED
Docker Desktop - Unexpected WSL error

Hyper-V absent ou en conflit avec un autre logiciel de virtualisation. Docker Desktop s’appuie sur Hyper-V (ou WSL 2) ; VMware ou VirtualBox en parallèle peuvent entrer en conflit.

Comment corriger :

Si Hyper-V n’est pas activé : fonctionnalités Windows → « Hyper-V », cocher toutes les sous-fonctionnalités, redémarrer. Windows Home ne supporte pas Hyper-V — seul le backend WSL 2 est possible.

Avec VMware ou VirtualBox, il faut choisir. Docker Desktop 4.x privilégie WSL 2, relativement plus compatible. VMware Workstation 15.5+ peut coexister théoriquement avec Hyper-V, mais des bugs subsistent.

Le plus simple : Docker Desktop (WSL 2) pour le dev, VMware/VirtualBox pour la prod ou les tests VM — séparer les usages.

Problème 3 : Droits d’installation insuffisants

Erreur fréquente à l’installation :

Installation Failed
Component CommunityInstaller.EnableFeaturesAction failed

Cause : installation sans droits administrateur, ou antivirus bloquant.

Comment corriger :

Clic droit sur l’installateur Docker Desktop → « Exécuter en tant qu’administrateur ». Autoriser pare-feu et antivirus si demandé.

Vérifier aussi l’espace disque sur C: — Docker Desktop demande au moins 10 Go ; les images en consomment davantage. On peut déplacer le stockage après installation, mais c’est un autre sujet.

Sur un PC d’entreprise avec stratégie de groupe, l’installation peut être bloquée — contacter l’IT ou installer Docker Engine dans WSL (sans interface graphique).

Problèmes courants sur Mac

Sur Mac, Docker est généralement plus simple — jusqu’à l’arrivée des puces M1/M2. Piège classique : mauvaise version — Intel sur Apple Silicon ou l’inverse.

Problème 1 : Compatibilité M1/M2

Symptômes : l’icône Docker n’apparaît pas dans la barre de menus, ou reste sur « Docker Desktop is starting… » indéfiniment. Dans le Terminal :

Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running?

Cause probable : mauvais installateur. Docker propose « Mac with Apple chip » et « Mac with Intel chip » — une erreur bloque le démarrage.

Comment corriger :

Vérifier la puce : icône Apple → À propos de ce Mac. « Apple M1 » ou « Apple M2 » → version Apple Silicon ; « Intel Core » → version Intel.

Si mauvaise version, désinstaller complètement :

# Désinstaller Docker Desktop
/Applications/Docker.app/Contents/MacOS/uninstall

# Supprimer les fichiers résiduels
rm -rf ~/Library/Group\ Containers/group.com.docker
rm -rf ~/Library/Containers/com.docker.docker
rm -rf ~/.docker

Puis retélécharger la bonne version et réinstaller.

Sur M1/M2, Rosetta 2 est nécessaire pour certaines images x86 :

softwareupdate --install-rosetta

Redémarrer Docker Desktop ensuite.

Problème 2 : Démon bloqué sur Starting…

Docker Desktop démarre, l’icône apparaît, mais reste sur « Starting… ». Activity Monitor montre les processus Docker actifs, sans accès utilisable.

Souvent : configuration corrompue ou port occupé.

Comment corriger :

Première option : réinitialiser Docker Desktop. Icône Docker → Troubleshoot → « Reset to factory defaults ». Efface conteneurs, images et config — sauvegarder les images importantes avant.

Si insuffisant, vérifier les ports. Docker utilise 2375 et 2376 par défaut :

# Voir l'occupation des ports
lsof -i :2375
lsof -i :2376

# Noter le PID et tuer le processus
kill -9 <PID>

Redémarrer Docker Desktop.

Option radicale : supprimer les fichiers VM :

rm -rf ~/Library/Containers/com.docker.docker/Data/vms

Docker recréera la VM au redémarrage.

Problème 3 : Refus de montage de fichiers

En montant un répertoire local :

Error response from daemon: Mounts denied:
The path /Users/yourname/project is not shared from the host and is not known to Docker.

Docker n’a pas accès au chemin. macOS restreint l’accès ; Docker n’accède qu’à certains chemins par défaut.

Comment corriger :

Docker Desktop → Settings → Resources → File Sharing, ajouter le répertoire. /Users, /Volumes, /private, /tmp sont généralement autorisés ; les sous-répertoires peuvent nécessiter un ajout explicite.

Si besoin : Réglages système → Confidentialité et sécurité → Accès complet au disque — cocher Docker Desktop. macOS 14.3+ est plus strict.

Pour disques externes ou partages réseau : configurer dans Docker ; les disques externes sont sous /Volumes.

Problèmes courants sur Linux

Sur Linux, Docker devrait être le plus simple — conçu pour Linux. En pratique, permissions et dépendances posent souvent problème.

Problème 1 : Permission Denied (le plus fréquent)

Après installation, docker ps renvoie :

docker: Got permission denied while trying to connect to the Docker daemon socket
at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/...":
dial unix /var/run/docker.sock: connect: permission denied.

Le démon Docker tourne en root ; l’utilisateur courant n’a pas accès à /var/run/docker.sock.

Comment corriger :

Ajouter l’utilisateur au groupe docker :

sudo usermod -aG docker $USER

La modification de groupe n’est pas immédiate — se reconnecter ou :

newgrp docker

Beaucoup oublient cette étape et pensent que la méthode ne fonctionne pas.

Vérification :

groups

Si docker apparaît, relancer docker ps.

Attention : le groupe docker confère des droits équivalents à root — Docker accède à tout le système de fichiers. Acceptable en dev personnel ; prudence en production.

Si ça persiste :

ls -l /var/run/docker.sock

Attendu : srw-rw---- 1 root docker. Sinon, temporairement :

sudo chmod 666 /var/run/docker.sock

Solution temporaire — perdue au redémarrage. La bonne approche reste le groupe docker.

Problème 2 : Dépendances manquantes (Ubuntu/Debian)

À l’installation :

docker-desktop : Depends: docker-ce-cli but it is not installable
The following packages have unmet dependencies:
 docker-desktop : Depends: pass but it is not installable
                  Depends: uidmap but it is not installable
                  Depends: gnome-terminal but it is not installable

Cause : dépôt officiel Docker non ajouté. Les dépôts apt par défaut n’ont pas Docker, ou une version trop ancienne.

Comment corriger (Ubuntu) :

Désinstaller l’ancienne version :

sudo apt-get remove docker docker-engine docker.io containerd runc

Configurer le dépôt officiel :

# Mettre à jour l'index apt
sudo apt-get update

# Installer les dépendances
sudo apt-get install ca-certificates curl gnupg lsb-release

# Ajouter la clé GPG Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Configurer le dépôt
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

$(lsb_release -cs) détecte le code Ubuntu (jammy, focal, etc.). Sur Linux Mint, consulter /etc/os-release et utiliser UBUNTU_CODENAME, pas le numéro Mint.

Puis installer :

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Vérifier avec docker --version.

Problème 3 : Échec du démon

Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running?

Comme sur Mac, mais sous Linux le démon est géré par systemd.

Comment corriger :

État du service :

sudo systemctl status docker

Si inactive (dead) ou failed :

sudo systemctl start docker
sudo systemctl enable docker  # démarrage automatique

Logs :

sudo journalctl -u docker.service -n 50

Sous-problèmes courants :

Conflit SELinux (CentOS/RHEL) :

sudo setenforce Permissive

Temporaire. Pour désactiver durablement, éditer /etc/selinux/config — déconseillé en production ; mieux vaut ajuster les politiques.

Erreur de syntaxe dans daemon.json :
Vérifier /etc/docker/daemon.json — une virgule ou un guillemet en trop bloque le démarrage. Valider avec jsonlint.

Pare-feu :

sudo systemctl stop firewalld  # CentOS/RHEL
sudo ufw disable              # Ubuntu

Si Docker démarre sans pare-feu, configurer les règles appropriées.

Problème 4 : Conflit de ports

Error starting daemon: error initializing graphdriver: driver not supported
bind: address already in use

Ports 2375 ou 2376 occupés, ou conflit lors de la configuration d’accès distant.

Comment corriger :

sudo netstat -tulnp | grep 2375
sudo netstat -tulnp | grep 2376

Noter le PID et :

sudo kill -9 <PID>

Pour l’accès distant (déconseillé sans sécurité), éditer /etc/docker/daemon.json :

{
  "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2376"]
}

Écouter 127.0.0.1 est plus sûr. Pour 0.0.0.0, configurer TLS — ne pas exposer en clair.

Redémarrer :

sudo systemctl daemon-reload
sudo systemctl restart docker

Piège : hosts à la fois dans daemon.json et dans le service systemd. Vérifier /lib/systemd/system/docker.service — commenter -H dans ExecStart si présent.

Flux d’installation Docker complet (trois plateformes)

Étapes complètes de l’installation à la validation, couvrant Windows, Mac et Linux

Estimated time: PT30M

  1. 1

    Step 1: Étapes Windows

    Vérifier la version Windows :
  2. 2

    Step 2: Étapes Mac

    Confirmer le type de puce :
  3. 3

    Step 3: • Rosetta 2

    softwareupdate —install-rosetta
  4. 4

    Step 4: Étapes Linux

    Désinstaller l’ancienne version :
  5. 5

    Step 5: Résoudre Permission Denied sur Linux

    Ajouter l’utilisateur au groupe docker :
  6. 6

    Step 6: Note

    le groupe docker équivaut à des droits root — prudence en production.
  7. 7

    Step 7: Validation et configuration

    Vérifier l’installation :
  8. 8

    Step 8: • daemon.json

    log-driver et log-opts

Problèmes généraux et bonnes pratiques

Quelle que soit la plateforme, quelques vérifications et réglages après installation évitent bien des soucis.

Vérifier que l’installation fonctionne

Avant d’utiliser Docker :

# Version Docker
docker --version

# Version Docker Compose (intégrée)
docker compose version

# Conteneur de test officiel
docker run hello-world

# Informations système
docker info

docker run hello-world télécharge une petite image ; « Hello from Docker! » confirme le bon fonctionnement. docker info affiche pilote de stockage, logs, nombre de conteneurs — utile en cas de problème.

Accélération miroir (recommandé en Chine)

Sans miroir, tirer des images depuis Docker Hub en Chine est lent et instable.

Éditer la config (Linux : /etc/docker/daemon.json ; Windows/Mac : Docker Desktop → Docker Engine) :

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://registry.docker-cn.com"
  ]
}

Redémarrer :

# Linux
sudo systemctl restart docker

# Mac/Windows : clic droit sur l'icône Docker → Restart

Vérifier :

docker info | grep -A 5 "Registry Mirrors"

Les miroirs publics chinois varient en stabilité — en configurer plusieurs. Certains (Aliyun Container Registry) demandent un compte mais sont plus rapides.

Limiter la taille des logs

Par défaut, les logs conteneur ne sont pas limités — des conteneurs longue durée peuvent générer des dizaines de Go et saturer le disque.

Dans daemon.json :

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

Chaque conteneur : max 10 Mo, 3 fichiers conservés ; rotation automatique au-delà.

Pour une conservation longue durée, utiliser ELK ou Loki plutôt que le stockage local.

Configurer le pilote de stockage

Les performances varient selon le pilote. Sur Linux, overlay2 est recommandé. Les anciennes versions peuvent utiliser devicemapper ou aufs.

Vérifier :

docker info | grep "Storage Driver"

Si ce n’est pas overlay2 :

{
  "storage-driver": "overlay2"
}

Changer le pilote redémarre Docker et efface conteneurs et images — sauvegarder avant.

Quelques principes pour éviter les pièges

  1. Consulter la doc officielle (docs.docker.com). Beaucoup de tutoriels en ligne sont copiés, parfois incorrectement.

  2. Vérifier la date du tutoriel. Docker évolue vite ; les guides 2020-2022 sont souvent obsolètes. Privilégier les contenus récents.

  3. Utiliser docker info et les logs. docker info pour la config, docker logs <ID> pour la sortie conteneur, journalctl -u docker.service (Linux) pour le démon. 90 % des problèmes laissent des traces dans les logs.

  4. Ne pas installer Docker Desktop dans une VM. Docker Desktop tourne déjà dans une VM ; l’imbriquer dégrade les performances et crée des erreurs bizarres. Dans une VM, préférer Docker Engine.

  5. Ne pas exécuter les conteneurs en root. Utiliser un utilisateur non privilégié quand c’est possible — bonne pratique de sécurité, surtout en production.

Checklist de diagnostic rapide

Problème Docker et vous ne savez pas par où commencer ? Cette séquence localise 90 % des cas courants.

Étape 1 : environnement de base

  • Version Docker à jour ? docker --version, dernière stable recommandée
  • Système compatible ? Windows 10 19045+/Win11 22631+, macOS 13+, Ubuntu 20.04+
  • Espace disque suffisant ? Au moins 10 Go — df -h (Linux/Mac) ou Explorateur (Windows)

Étape 2 : permissions et groupes (Linux/Mac)

  • Utilisateur dans le groupe docker ? groups doit afficher docker
  • Reconnexion après changement de groupe ? newgrp docker ou déconnexion/reconnexion
  • Permissions du socket ? ls -l /var/run/docker.socksrw-rw---- 1 root docker

Étape 3 : service et processus

  • Démon Docker actif ?
    • Linux : sudo systemctl status docker
    • Mac : Activity Monitor, rechercher Docker
    • Windows : Gestionnaire des tâches, Docker Desktop
  • Conflit de ports ? netstat -tulnp | grep docker (Linux) ou lsof -i :2375 (Mac)
  • Pare-feu ? Test en le désactivant temporairement (sudo systemctl stop firewalld ou sudo ufw disable)

Étape 4 : configuration

  • Syntaxe daemon.json correcte ? Valider en JSON ou supprimer temporairement et redémarrer
  • hosts en double ? Vérifier daemon.json et le service systemd — ne pas configurer les deux
  • Miroirs accessibles ? ping registry.docker-cn.com ou curl https://docker.m.daocloud.io

Étape 5 : logs détaillés

Étape clé — les logs contiennent souvent l’erreur exacte :

  • Linux : sudo journalctl -u docker.service -n 50
  • Mac : logs dans ~/Library/Containers/com.docker.docker/Data/log/
  • Windows : Observateur d’événements → Journaux des applications et services → Docker Desktop

Copier l’erreur complète et rechercher en anglais — quelqu’un a probablement eu le même problème.

Étape 6 : recours ultime

Dans l’ordre :

  1. Reset Docker Desktop (Troubleshoot → Reset to factory defaults)
  2. Désinstallation complète (supprimer configs et cache)
  3. Antivirus temporairement désactivé
  4. Essayer une autre version (stable légèrement plus ancienne si la dernière échoue)

Si rien ne fonctionne : poster sur le forum Docker ou Stack Overflow avec version système, version Docker et logs complets — pas « Docker ne s’installe pas, aidez-moi ».

Conclusion

Installer Docker est à la fois simple et piégeux. Simple parce que les erreurs suivent des schémas connus ; piégeux parce que chaque plateforme a ses spécificités — WSL 2 sur Windows, puce sur Mac, permissions et dépendances sur Linux.

Permission denied, démon qui ne démarre pas, dépendances manquantes : ces cas couvrent 80 % des erreurs d’installation. Les 20 % restants sont des environnements atypiques — mais avec les logs, la doc et une recherche en anglais, on finit par trouver.

Quelques conseils finaux :

Après installation, lancer docker run hello-world pour valider. En Chine, configurer l’accélération miroir. Limiter la taille des logs évite de saturer le disque plus tard.

En cas de problème, suivre la checklist — la plupart se résolvent seuls. Sinon, forum Docker ou Stack Overflow avec l’erreur complète et la version système.

Essayez maintenant. Si cet article vous a aidé, partagez-le avec quelqu’un qui galère encore avec l’installation Docker.

FAQ

L'installation Docker échoue sur Windows avec WSL 2 installation is incomplete — que faire ?
Trois étapes :
1) Vérifier la version Windows (Win+R, winver — Windows 10 22H2 / Win11 23H2 requis)
2) Activer WSL (Panneau de configuration → Programmes et fonctionnalités → Activer ou désactiver des fonctionnalités Windows, cocher « Sous-système Windows pour Linux » et « Plateforme de machine virtuelle », redémarrage obligatoire)
3) Mettre à jour WSL (PowerShell administrateur : wsl --update, wsl --set-default-version 2 — WSL 2.1.5+ requis)

Si ça ne suffit pas, activer la virtualisation dans le BIOS (Virtualization Technology ou Intel VT-x/AMD-V sur Enabled).
Docker Desktop sur Mac reste bloqué sur Starting... — que faire ?
Causes possibles :

1) Mauvaise version téléchargée :
• M1/M2 → version Apple Silicon ; Intel → version Intel
• Vérifier : icône Apple → À propos de ce Mac → type de puce
• Si erreur : désinstaller complètement et réinstaller

2) Démon bloqué au démarrage :
• Réinitialiser Docker Desktop : icône Docker → Troubleshoot → Reset to factory defaults
• Ou vérifier conflit de ports : lsof -i :2375

3) Fichiers de config corrompus :
• Supprimer ~/Library/Containers/com.docker.docker/Data/vms pour forcer la recréation de la VM

Sur M1/M2, pour exécuter des images x86, installer Rosetta 2 (softwareupdate --install-rosetta).
docker ps renvoie permission denied sur Linux — que faire ?
Solution :
1) Ajouter l'utilisateur au groupe docker : sudo usermod -aG docker $USER
2) Rafraîchir le groupe : newgrp docker ou se reconnecter (étape souvent oubliée)
3) Vérifier : groups doit afficher docker, docker ps ne doit plus échouer

Note : rejoindre le groupe docker équivaut à des droits root (Docker accède à tout le système de fichiers). Acceptable sur une machine de dev personnelle ; à manier avec prudence en production.

Si ça persiste, vérifier les permissions du socket (ls -l /var/run/docker.sock doit afficher srw-rw---- 1 root docker).
Des dépendances manquantes lors de l'installation Docker sur Linux — que faire ?
Cause : dépôt officiel Docker non ajouté.

Étapes :
1) Désinstaller l'ancienne version : sudo apt-get remove docker docker-engine docker.io containerd runc
2) Configurer le dépôt officiel :
• Installer ca-certificates curl gnupg lsb-release
• Ajouter la clé GPG
• Configurer le dépôt
• Sur Linux Mint, utiliser UBUNTU_CODENAME et non le numéro de version Mint
3) Mettre à jour et installer : sudo apt-get update, sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Le démon Docker ne démarre pas — que faire ?
Diagnostic :
1) État du service :
• Linux : sudo systemctl status docker
• Mac : Activity Monitor, rechercher Docker
2) Démarrage manuel :
• Linux : sudo systemctl start docker, sudo systemctl enable docker
3) Logs détaillés :
• Linux : sudo journalctl -u docker.service -n 50
• Mac : ~/Library/Containers/com.docker.docker/Data/log/

Causes fréquentes :
• Conflit SELinux (CentOS/RHEL, test temporaire : sudo setenforce Permissive)
• Erreur de syntaxe dans /etc/docker/daemon.json
• Pare-feu bloquant (test en le désactivant temporairement)
Comment vérifier et configurer Docker après l'installation ?
Vérification :
• docker --version, docker compose version
• docker run hello-world (Hello from Docker! = OK)
• docker info

Accélération miroir (recommandé en Chine) :
• Éditer /etc/docker/daemon.json, ajouter registry-mirrors (ex. https://docker.m.daocloud.io)
• Redémarrer Docker

Limiter la taille des logs :
• daemon.json : log-driver et log-opts (max-size 10m max-file 3, évite de saturer le disque)

Pilote de stockage :
• Vérifier docker info ; si ce n'est pas overlay2, ajouter storage-driver: overlay2 dans daemon.json
• Changer le pilote efface toutes les données — sauvegarder d'abord
Quelle est la checklist rapide pour les problèmes d'installation Docker ?
Vérifier dans l'ordre :

Étape 1 — environnement :
• Version Docker, version système, espace disque

Étape 2 — permissions et groupes (Linux/Mac) :
• groups, newgrp docker ou reconnexion, permissions du socket

Étape 3 — service et processus :
• systemctl status docker, conflits de ports, pare-feu

Étape 4 — configuration :
• Syntaxe daemon.json, hosts en double, accessibilité des miroirs

Étape 5 — logs détaillés :
• journalctl -u docker.service ou répertoire de logs

Étape 6 — recours ultime :
• Reset Docker Desktop, désinstallation complète, antivirus, autre version

90 % des problèmes courants se localisent avec cette checklist.

12 min de lecture · Publié le: 17 déc. 2025 · Mis à jour le: 27 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog