Installation de Docker
Objectifs du chapitre
- Installer Docker sur différents systèmes d'exploitation
- Configurer Docker correctement
- Vérifier l'installation
- Comprendre Docker Desktop vs Docker Engine
1 - Prérequis système
Configuration minimale
| OS | CPU | RAM | Espace disque |
|---|---|---|---|
| Windows 10/11 | 64-bit | 4 Go | 20 Go |
| macOS 12+ | Apple Silicon / Intel | 4 Go | 20 Go |
| Linux | 64-bit | 2 Go | 10 Go |
Windows : WSL2 requis
Docker Desktop sur Windows nécessite WSL2 (Windows Subsystem for Linux 2) :
# Vérifier si WSL est installé
wsl --version
# Installer WSL2 si nécessaire
wsl --install
# Redémarrer l'ordinateur
2 - Installation sur Windows
Docker Desktop pour Windows
Étape 1 : Télécharger l'installateur
Rendez-vous sur docker.com/products/docker-desktop et téléchargez l'installateur Windows.
Étape 2 : Exécuter l'installation
1. Double-cliquez sur Docker Desktop Installer.exe
2. Cochez "Use WSL 2 instead of Hyper-V"
3. Cliquez sur "Install"
4. Redémarrez l'ordinateur
Étape 3 : Configurer Docker Desktop
1. Lancez Docker Desktop
2. Acceptez les conditions d'utilisation
3. Complétez la configuration initiale
4. L'icône Docker apparaît dans la barre des tâches
Étape 4 : Vérifier l'installation
# Ouvrir PowerShell ou CMD
docker --version
docker run hello-world
Configuration WSL2
Pour utiliser Docker dans WSL2 :
# Dans le terminal WSL2
docker --version
# Le daemon Docker Desktop est partagé avec WSL2
docker ps
3 - Installation sur macOS
Docker Desktop pour Mac
Étape 1 : Télécharger
Étape 2 : Installation
1. Ouvrez le fichier .dmg téléchargé
2. Glissez Docker dans le dossier Applications
3. Lancez Docker depuis le Launchpad
4. Autorisez l'accès privilégié si demandé
Étape 3 : Vérification
# Ouvrir Terminal
docker --version
docker run hello-world
Configuration des ressources
Accédez aux paramètres via Docker Desktop > Settings > Resources :
| Ressource | Recommandation |
|---|---|
| CPU | 2-4 cores |
| Memory | 4-8 Go |
| Swap | 1-2 Go |
| Disk | 60+ Go |
4 - Installation sur Linux
Ubuntu / Debian
Étape 1 : Supprimer les anciennes versions
sudo apt-get remove docker docker-engine docker.io containerd runc
Étape 2 : Installer les dépendances
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
Étape 3 : Ajouter le repository Docker
# Ajouter la clé GPG officielle
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Ajouter le repository
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
Étape 4 : Installer Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Étape 5 : Configurer les permissions
# Ajouter l'utilisateur au groupe docker
sudo usermod -aG docker $USER
# Appliquer les changements (déconnexion/reconnexion ou)
newgrp docker
Étape 6 : Vérifier l'installation
docker --version
docker run hello-world
CentOS / RHEL / Fedora
Installation sur CentOS/RHEL
# Supprimer les anciennes versions
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# Installer les dépendances
sudo yum install -y yum-utils
# Ajouter le repository
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Installer Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Démarrer Docker
sudo systemctl start docker
sudo systemctl enable docker
# Permissions utilisateur
sudo usermod -aG docker $USER
Installation sur Fedora
# Installer le repository
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
# Installer Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Démarrer et activer
sudo systemctl start docker
sudo systemctl enable docker
Script d'installation rapide (toutes distributions)
# Script officiel Docker (non recommandé pour production)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Ajouter l'utilisateur au groupe docker
sudo usermod -aG docker $USER
5 - Post-installation
Configurer le démarrage automatique
Linux (systemd)
# Activer Docker au démarrage
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
# Vérifier le statut
sudo systemctl status docker
Configurer le daemon Docker
Créez ou éditez /etc/docker/daemon.json :
{
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"default-address-pools": [
{
"base": "172.17.0.0/16",
"size": 24
}
]
}
Redémarrer Docker :
sudo systemctl restart docker
Configurer un miroir de registre (optionnel)
Pour accélérer les téléchargements :
{
"registry-mirrors": [
"https://mirror.gcr.io",
"https://docker-mirror.example.com"
]
}
6 - Vérification de l'installation
Tests de base
# Version
docker --version
# Docker version 24.0.7, build afdd53b
# Version détaillée
docker version
# Informations système
docker info
# Test hello-world
docker run hello-world
Test plus complet
# Lancer un conteneur interactif
docker run -it ubuntu bash
# Dans le conteneur
cat /etc/os-release
exit
# Lancer un serveur web
docker run -d -p 8080:80 nginx
# Vérifier que nginx répond
curl http://localhost:8080
# Arrêter le conteneur
docker stop $(docker ps -q)
Commandes de diagnostic
# Lister les conteneurs
docker ps -a
# Lister les images
docker images
# Espace disque utilisé
docker system df
# Événements en temps réel
docker events
7 - Docker Desktop vs Docker Engine
Comparaison
| Fonctionnalité | Docker Desktop | Docker Engine |
|---|---|---|
| Interface graphique | Oui | Non |
| OS supportés | Windows, macOS, Linux | Linux uniquement |
| Kubernetes intégré | Oui | Non |
| Extensions | Oui | Non |
| Licence | Payant pour entreprises | Gratuit |
| Usage | Développement | Production |
Quand utiliser quoi ?
Docker Desktop
- Développement local sur Windows/macOS
- Besoin d'interface graphique
- Équipes < 250 personnes
Docker Engine
- Serveurs Linux en production
- CI/CD pipelines
- Clusters Kubernetes
8 - Dépannage courant
Erreur : permission denied
# Problème
Got permission denied while trying to connect to the Docker daemon socket
# Solution
sudo usermod -aG docker $USER
newgrp docker
# OU déconnexion/reconnexion
Erreur : daemon not running
# Linux
sudo systemctl start docker
sudo systemctl status docker
# Vérifier les logs
sudo journalctl -u docker.service
Erreur : port already in use
# Trouver le processus utilisant le port
sudo lsof -i :80
# OU
sudo netstat -tlnp | grep :80
# Arrêter le processus ou utiliser un autre port
docker run -p 8080:80 nginx
Erreur : no space left on device
# Nettoyer les ressources inutilisées
docker system prune -a
# Nettoyer les volumes
docker volume prune
# Vérifier l'espace
docker system df
Windows : problèmes WSL2
# Redémarrer WSL
wsl --shutdown
# Mettre à jour WSL
wsl --update
# Vérifier la version
wsl --version
Résumé
| Plateforme | Méthode recommandée |
|---|---|
| Windows | Docker Desktop + WSL2 |
| macOS | Docker Desktop |
| Ubuntu/Debian | Docker Engine via apt |
| CentOS/RHEL | Docker Engine via yum |
| Fedora | Docker Engine via dnf |
- Docker Desktop pour le développement (Windows/macOS)
- Docker Engine pour la production (Linux)
- Toujours ajouter l'utilisateur au groupe docker
- Configurer le démarrage automatique sur les serveurs
Exercices pratiques
- Installez Docker sur votre système
- Vérifiez l'installation avec
docker run hello-world - Exécutez un conteneur nginx et accédez-y via le navigateur
- Consultez les informations système avec
docker info