
Docker s'installe différemment selon votre système : Docker Engine natif sur Linux (Ubuntu, Debian, Rocky), Docker Desktop ou WSL2 sur Windows, Docker Desktop ou Colima sur macOS. Ce guide couvre, pour chaque plateforme, la méthode officielle et une alternative open source, puis la configuration post-installation et la vérification.
Il s'adresse aux débutants : aucune expérience préalable de Docker n'est requise. Comptez 15 à 20 minutes pour obtenir un Docker fonctionnel, permissions comprises.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »Le guide traite les trois plateformes séparément, parce que les commandes n'ont
rien de commun. Les deux derniers points, en revanche, valent pour tout le
monde : sans la configuration post-installation et sans vérification, une
installation « réussie » se révèle inutilisable au premier docker run.
- Installation Linux : Docker Engine sur Ubuntu, Debian, Rocky Linux
- Installation Windows : Docker Desktop et alternative WSL2
- Installation macOS : Docker Desktop et alternative Colima
- Post-installation : permissions, groupe docker, démarrage automatique
- Vérification : commandes de test et diagnostic
Prérequis
Section intitulée « Prérequis »Docker Engine exige un système 64 bits ; sur Windows et macOS, il exige en plus une couche de virtualisation, WSL2 ou une machine virtuelle légère. Le tableau donne le plancher par système : en dessous de ces versions, l'installation officielle n'est plus prise en charge et le dépôt Docker ne publie plus de paquet correspondant.
| Système | Configuration minimale |
|---|---|
| Ubuntu | 20.04+, 64-bit, kernel 5.10+ |
| Debian | 11+, 64-bit |
| Rocky/RHEL | 8+, 64-bit |
| Windows | 10 (21H2+) ou 11, WSL2 activé |
| macOS | 12 (Monterey)+, Apple Silicon ou Intel |
Docker Engine vs Docker Desktop
Section intitulée « Docker Engine vs Docker Desktop »Docker Engine est le daemon plus la CLI, gratuit et sous licence Apache 2.0 ; Docker Desktop y ajoute une machine virtuelle, une interface graphique, Kubernetes et Compose, et devient payant au-delà de 250 employés ou 10 millions de dollars de revenus. Sur un serveur, c'est toujours Engine.
Docker distribue donc deux produits distincts, et l'erreur classique consiste à installer Docker Desktop sur un serveur alors que seul Docker Engine y a sa place. Engine est le daemon plus la CLI, sans interface graphique, et il tourne directement sur le noyau Linux de la machine. Desktop empaquette ce même daemon dans une machine virtuelle, y ajoute une interface, Kubernetes et Compose, et impose une licence payante au-delà d'un certain seuil d'entreprise.
| Caractéristique | Docker Engine | Docker Desktop |
|---|---|---|
| Plateforme | Linux natif | Windows, macOS, Linux |
| Interface | CLI uniquement | GUI + CLI |
| Licence | Open source (Apache 2.0) | Gratuit personnel, payant entreprise (>250 employés) |
| Kubernetes | Non inclus | Inclus |
| Compose | Installation séparée | Inclus |
| VM | Non (natif) | Oui (WSL2/HyperKit) |
Recommandations :
- Serveur Linux → Docker Engine
- Développement Windows/macOS → Docker Desktop ou alternative
- Entreprise > 250 employés → Évaluer les alternatives (Podman, Colima)
Installation sur Linux
Section intitulée « Installation sur Linux »Sur Linux, Docker Engine s'installe depuis le dépôt officiel download.docker.com, avec les paquets docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin et docker-compose-plugin.
L'installation passe donc par ce dépôt, pas par le
paquet docker.io des distributions, souvent en retard de plusieurs versions
majeures et dépourvu des plugins Buildx et Compose. La procédure est identique
dans son principe pour toutes les distributions : déclarer la clé de
signature du dépôt, ajouter le dépôt, installer les paquets, puis vérifier
avec un conteneur de test.
Ubuntu / Debian
Section intitulée « Ubuntu / Debian »La suite d'étapes ci-dessous configure le dépôt APT de Docker. L'étape de la
clé GPG conditionne toutes les suivantes : sans elle, apt update rejette
le dépôt et l'installation échoue avec une erreur de signature.
-
Désinstaller les anciennes versions
Supprimez les paquets obsolètes qui peuvent entrer en conflit :
Fenêtre de terminal sudo apt remove docker.io docker-compose docker-doc podman-docker containerd runc -
Installer les dépendances
Fenêtre de terminal sudo apt updatesudo apt install -y ca-certificates curl gnupg -
Ajouter la clé GPG Docker
Fenêtre de terminal sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | \sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpgPour Debian, remplacez
ubuntupardebiandans l'URL. -
Ajouter le repository Docker
Fenêtre de terminal echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -
Installer Docker Engine
Fenêtre de terminal sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Vérifier l'installation
Fenêtre de terminal sudo docker run hello-world
Rocky Linux / RHEL
Section intitulée « Rocky Linux / RHEL »La famille RHEL utilise dnf et le dépôt docker-ce.repo, qui embarque déjà sa
clé de signature : il n'y a donc pas d'étape GPG séparée. Une différence compte
par rapport à Debian : le service n'est pas démarré automatiquement après
l'installation, il faut le lancer et l'activer explicitement.
-
Désinstaller les anciennes versions
Fenêtre de terminal sudo dnf remove docker docker-client docker-client-latest \docker-common docker-latest docker-latest-logrotate \docker-logrotate docker-engine podman runc -
Ajouter le repository Docker
Fenêtre de terminal sudo dnf -y install dnf-plugins-coresudo dnf config-manager --add-repo \https://download.docker.com/linux/rhel/docker-ce.repoPour Rocky Linux, utilisez également le repo RHEL (compatible).
-
Installer Docker Engine
Fenêtre de terminal sudo dnf install -y docker-ce docker-ce-cli containerd.io \docker-buildx-plugin docker-compose-plugin -
Démarrer et activer Docker
Fenêtre de terminal sudo systemctl start dockersudo systemctl enable docker -
Vérifier l'installation
Fenêtre de terminal sudo docker run hello-world
Post-installation Linux
Section intitulée « Post-installation Linux »Docker est fonctionnel dès l'installation, mais uniquement pour root, sans rotation des journaux et, selon la distribution, sans démarrage au boot. Les trois réglages qui suivent corrigent ces trois points. Le premier a des conséquences directes sur la sécurité de la machine, lisez l'avertissement qui l'accompagne avant de l'appliquer.
Ajouter l'utilisateur au groupe docker
Section intitulée « Ajouter l'utilisateur au groupe docker »Par défaut, seul root peut utiliser Docker. Ajoutez votre utilisateur au groupe docker :
# Ajouter l'utilisateur courant au groupe dockersudo usermod -aG docker $USER
# Appliquer les changements (sans déconnexion)newgrp docker
# Ou déconnectez-vous et reconnectez-vousConfigurer le démarrage automatique
Section intitulée « Configurer le démarrage automatique »Les deux services vont de pair : docker.service expose l'API et le socket,
containerd.service exécute réellement les conteneurs. Activer le premier sans
le second laisse les conteneurs déclarés en restart: always inertes après un
redémarrage.
# Activer le démarrage au bootsudo systemctl enable docker.servicesudo systemctl enable containerd.service
# Vérifier le statutsudo systemctl status dockerConfigurer le daemon
Section intitulée « Configurer le daemon »Le fichier /etc/docker/daemon.json n'existe pas après l'installation, et son
absence signifie que les journaux de conteneurs ne sont jamais purgés : un
conteneur bavard peut remplir /var/lib/docker jusqu'à saturer la partition.
La configuration ci-dessous plafonne chaque journal à 10 Mo sur 3 fichiers, soit
30 Mo par conteneur au maximum. Le redémarrage du daemon est indispensable,
le fichier n'est lu qu'au démarrage.
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json << 'EOF'{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }}EOFsudo systemctl restart dockerConsultez le guide Configuration du daemon pour plus d'options.
Installation sur Windows
Section intitulée « Installation sur Windows »Sur Windows, deux méthodes existent : Docker Desktop, qui gère la machine virtuelle pour vous, ou Docker Engine installé directement dans une distribution WSL2, gratuit y compris en entreprise.
Windows n'exécute pas de conteneurs Linux nativement : dans les deux méthodes qui suivent, le daemon tourne dans une machine virtuelle légère fournie par WSL2. La différence tient à qui gère cette VM. Docker Desktop la pilote pour vous et ajoute une interface graphique ; l'installation directe dans une distribution WSL2 vous laisse la main et échappe à la licence commerciale.
Docker Desktop
Section intitulée « Docker Desktop »Docker Desktop est la solution officielle pour Windows avec interface graphique.
-
Activer WSL2
Ouvrez PowerShell en administrateur :
Fenêtre de terminal wsl --installRedémarrez l'ordinateur si demandé.
-
Télécharger Docker Desktop
Téléchargez l'installateur depuis docker.com/products/docker-desktop.
-
Installer Docker Desktop
- Exécutez l'installateur
- Cochez "Use WSL 2 instead of Hyper-V" (recommandé)
- Suivez l'assistant
-
Configurer Docker Desktop
Au premier lancement :
- Acceptez les conditions d'utilisation
- Connectez-vous (optionnel pour usage personnel)
- Dans Settings > Resources > WSL Integration, activez l'intégration avec vos distributions
-
Vérifier l'installation
Ouvrez un terminal (PowerShell ou WSL) :
Fenêtre de terminal docker run hello-world
Alternative : Docker dans WSL2
Section intitulée « Alternative : Docker dans WSL2 »Pour éviter Docker Desktop (et sa licence), installez Docker Engine directement dans une distribution WSL2.
-
Installer une distribution WSL2
Fenêtre de terminal wsl --install -d Ubuntu -
Installer Docker Engine dans WSL2
Ouvrez Ubuntu (WSL) et suivez les étapes Ubuntu/Debian ci-dessus.
-
Configurer le démarrage automatique
Docker ne démarre pas automatiquement dans WSL2. Ajoutez à votre
~/.bashrc:Fenêtre de terminal # Démarrer Docker si pas déjà lancéif ! pgrep -x "dockerd" > /dev/null; thensudo dockerd > /dev/null 2>&1 &fiPour éviter le mot de passe sudo, ajoutez dans
/etc/sudoers.d/docker:%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd -
Vérifier l'installation
Fenêtre de terminal docker run hello-world
Avantages :
- Gratuit même pour les entreprises
- Docker Engine natif Linux
- Pas de VM supplémentaire
Inconvénients :
- Pas d'interface graphique
- Configuration manuelle du démarrage
- Pas de Kubernetes intégré
Installation sur macOS
Section intitulée « Installation sur macOS »Sur macOS, deux méthodes existent : Docker Desktop, complet mais sous licence commerciale au-delà de 250 employés, ou Colima, une alternative libre installée par brew install colima docker.
Comme sur Windows, macOS fait tourner les conteneurs dans une machine virtuelle Linux, jamais directement sur le système hôte. Cette indirection explique la lenteur bien connue des bind mounts entre le Mac et les conteneurs. Deux options : Docker Desktop, complet mais sous licence, et Colima, plus léger et entièrement libre.
Docker Desktop
Section intitulée « Docker Desktop »Vérifiez d'abord l'architecture de votre Mac : le paquet Apple Silicon et le paquet Intel ne sont pas interchangeables, et l'installateur du mauvais type refuse de se lancer.
-
Télécharger Docker Desktop
-
Installer l'application
- Ouvrez le fichier
.dmg - Glissez Docker dans Applications
- Lancez Docker depuis Applications
- Ouvrez le fichier
-
Configurer les ressources
Dans Settings > Resources, ajustez selon vos besoins :
- CPUs : 2-4 recommandé
- Memory : 4-8 GB recommandé
- Disk : selon vos images
-
Vérifier l'installation
Fenêtre de terminal docker run hello-world
Alternative : Colima
Section intitulée « Alternative : Colima »Colima (Containers on Lima) est une alternative open-source et gratuite à Docker Desktop sur macOS.
-
Installer Homebrew (si pas déjà installé)
Le script d'installation habituel se lance par
curl | bash, ce qui exécute sans contrôle ce que renvoie le réseau. Homebrew publie aussi un installateur.pkgsigné sur ses releases GitHub : téléchargez-le, vérifiez son empreinte et sa signature Apple, puis installez-le.Fenêtre de terminal # Installateur publié avec la release Homebrew 6.0.12curl -fsSLO https://github.com/Homebrew/brew/releases/download/6.0.12/Homebrew.pkg# Empreinte SHA-256 de l'artefact, publiée sur la page de releaseecho "b42d41a4d76366e0bdc53edfd7cd72e893037c23e09a3575c732a02d8f027364 Homebrew.pkg" \| shasum -a 256 --check# Homebrew.pkg: OK# Contrôler la signature avant d'installerpkgutil --check-signature Homebrew.pkgsudo installer -pkg Homebrew.pkg -target /Adaptez le numéro de version et l'empreinte à la release courante, les deux figurent sur la page de release de
Homebrew/brew. -
Installer Colima et Docker CLI
Fenêtre de terminal brew install colima docker docker-compose -
Démarrer Colima
Fenêtre de terminal # Démarrage avec configuration par défautcolima start# Ou avec ressources personnaliséescolima start --cpu 4 --memory 8 --disk 60 -
Vérifier l'installation
Fenêtre de terminal docker run hello-world -
Configurer le démarrage automatique (optionnel)
Fenêtre de terminal brew services start colima
Commandes Colima utiles :
| Commande | Description |
|---|---|
colima start | Démarrer la VM |
colima stop | Arrêter la VM |
colima status | État actuel |
colima delete | Supprimer la VM |
colima ssh | Accéder à la VM |
Vérification de l'installation
Section intitulée « Vérification de l'installation »Une installation Docker se vérifie par trois commandes dans cet ordre : docker version, docker info, puis docker run hello-world.
Une installation réussie se prouve donc en trois temps : la CLI répond, le daemon est joignable, et un conteneur démarre pour de bon. Les trois commandes ci-dessous couvrent chacun de ces niveaux dans l'ordre, ce qui permet d'isoler la panne quand quelque chose ne marche pas.
Commandes de test
Section intitulée « Commandes de test »Ces trois commandes sont complémentaires : docker version teste le dialogue
avec le daemon, docker info restitue sa configuration effective, et
docker run valide la chaîne complète jusqu'au réseau et au registre.
# Version client et serveurdocker version
# Informations système détailléesdocker info
# Test fonctionnel completdocker run hello-worlddocker version affiche les versions du client et du daemon :
Client: Docker Engine - Community Version: 29.1.3 API version: 1.52 Go version: go1.25.5 OS/Arch: linux/amd64 Context: default
Server: Docker Engine - Community Engine: Version: 29.1.3 API version: 1.52 (minimum version 1.44) OS/Arch: linux/amd64 containerd: Version: v2.2.1Le point à contrôler n'est pas le numéro exact, qui dépend de la date
d'installation, mais la présence du bloc Server. S'il manque, la CLI est
installée mais ne parle pas au daemon.
docker info affiche les détails de configuration :
docker info | grep -E "Storage Driver|Docker Root Dir|Containers|Images"Test fonctionnel avec hello-world
Section intitulée « Test fonctionnel avec hello-world »L'image hello-world ne pèse que quelques kilo-octets et son unique rôle est de
valider la chaîne d'exécution. Elle exige tout de même un accès réseau à
Docker Hub au premier lancement : une erreur à cette étape désigne souvent le
proxy ou le DNS, pas l'installation de Docker.
docker run hello-worldCette commande :
- Télécharge l'image
hello-worlddepuis Docker Hub - Crée et démarre un conteneur
- Affiche un message de confirmation
- Arrête le conteneur
Si vous voyez "Hello from Docker!", l'installation est réussie.
Dépannage
Section intitulée « Dépannage »La panne la plus fréquente après installation est permission denied sur /var/run/docker.sock : elle se règle par sudo usermod -aG docker $USER suivi de newgrp docker.
Les autres pannes d'installation se répartissent par plateforme, et la cause diffère franchement de l'une à l'autre : permissions et conflits de paquets sur Linux, virtualisation sur Windows, performances de la VM sur macOS. Repérez d'abord votre système, puis le symptôme exact dans le tableau correspondant.
Sur Linux, les problèmes les plus fréquents concernent les permissions et les conflits de packages.
| Problème | Solution |
|---|---|
permission denied sur docker.sock | Ajouter l'utilisateur au groupe docker + newgrp docker |
| Docker ne démarre pas | Vérifier journalctl -u docker.service |
docker.io vs docker-ce conflit | Désinstaller docker.io avant d'installer docker-ce |
| Espace disque insuffisant | Vérifier /var/lib/docker, exécuter docker system prune |
Sur Windows, les problèmes concernent généralement WSL2, la virtualisation ou les ressources système.
| Problème | Solution |
|---|---|
| WSL2 non disponible | Exécuter wsl --install en admin |
| Docker Desktop ne démarre pas | Vérifier que la virtualisation est activée dans le BIOS |
| Erreur Hyper-V | Utiliser le backend WSL2 au lieu de Hyper-V |
| Lenteur extrême | Vérifier les ressources allouées dans Settings |
Sur macOS, les problèmes sont souvent liés aux performances de la VM ou aux certificats SSL corporate.
| Problème | Solution |
|---|---|
| Docker Desktop lent | Augmenter CPU/RAM dans Settings > Resources |
| Colima ne démarre pas | colima delete puis colima start |
| Bind mount lent | Utiliser des volumes nommés pour les dépendances |
| Certificat SSL | Ajouter le certificat dans Keychain Access |
Commandes de diagnostic
Section intitulée « Commandes de diagnostic »Quand aucun symptôme du tableau ne correspond, ces commandes donnent les
éléments à examiner. Attention à la dernière : docker system prune -a supprime
toutes les images non utilisées par un conteneur en cours, y compris celles
qu'il faudra retélécharger ensuite.
# Logs du daemon Docker (Linux)sudo journalctl -u docker.service --no-pager -n 50
# Informations système complètesdocker info
# Vérifier la connectivitédocker run --rm alpine ping -c 3 8.8.8.8
# Espace utilisédocker system df
# Nettoyer les ressources inutiliséesdocker system prune -aÀ retenir
Section intitulée « À retenir »Huit points résument le guide. Les quatre premiers portent sur le choix du
produit selon la plateforme et la licence, les quatre suivants sur ce qu'il
reste à faire une fois les paquets installés, étape que beaucoup sautent avant
de se demander pourquoi Docker réclame sudo.
- Docker Engine est open-source et s'installe nativement sur Linux
- Docker Desktop est gratuit pour usage personnel mais payant pour les grandes entreprises
- WSL2 permet d'installer Docker Engine sur Windows sans Docker Desktop
- Colima est l'alternative gratuite à Docker Desktop sur macOS
- Groupe docker = privilèges root, utilisez rootless mode pour plus de sécurité
docker versionvérifie client et daemon,docker infoaffiche la configuration- Post-installation : groupe docker, démarrage automatique, daemon.json
newgrp dockerapplique les changements de groupe sans déconnexion
FAQ : questions fréquentes
Section intitulée « FAQ : questions fréquentes »Les questions ci-dessous reviennent régulièrement au moment de l'installation, en particulier sur la licence de Docker Desktop et sur les alternatives libres selon la plateforme.
docker-ce avec apt. Évitez le paquet docker.io des dépôts Ubuntu, souvent en retard d'une ou plusieurs versions. Pensez à ajouter votre utilisateur au groupe docker pour lancer les commandes sans sudo.Prochaines étapes
Section intitulée « Prochaines étapes »Docker installé, la suite logique est d'apprendre à le piloter, puis à le configurer et à le durcir. Les cinq guides ci-dessous suivent cet ordre : la CLI d'abord, le durcissement ensuite, l'orchestration multi-conteneurs en dernier.