Aller au contenu principal

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

OSCPURAMEspace disque
Windows 10/1164-bit4 Go20 Go
macOS 12+Apple Silicon / Intel4 Go20 Go
Linux64-bit2 Go10 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 :

RessourceRecommandation
CPU2-4 cores
Memory4-8 Go
Swap1-2 Go
Disk60+ 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 DesktopDocker Engine
Interface graphiqueOuiNon
OS supportésWindows, macOS, LinuxLinux uniquement
Kubernetes intégréOuiNon
ExtensionsOuiNon
LicencePayant pour entreprisesGratuit
UsageDéveloppementProduction

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é

PlateformeMéthode recommandée
WindowsDocker Desktop + WSL2
macOSDocker Desktop
Ubuntu/DebianDocker Engine via apt
CentOS/RHELDocker Engine via yum
FedoraDocker Engine via dnf
Points clés
  • 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

  1. Installez Docker sur votre système
  2. Vérifiez l'installation avec docker run hello-world
  3. Exécutez un conteneur nginx et accédez-y via le navigateur
  4. Consultez les informations système avec docker info

← Introduction | Images Docker →