Aller au contenu

Installer Docker sur Ubuntu

Ce guide installe Docker Engine et Docker Compose sur Ubuntu 24.04 et 26.04 (64 bits), depuis le dépôt officiel de Docker. Il est préférable au paquet docker.io d’Ubuntu, plus ancien. Une fois Docker installé, voir les commandes générales Docker et les pages par thème (images, conteneurs, volumes, réseau, Docker Compose).

  • Ubuntu 24.04 LTS (Noble) ou 26.04 LTS (Resolute), architecture 64 bits.
  • Un utilisateur disposant de sudo.
  • Un accès Internet.

Si des paquets Docker non officiels sont installés, ils entrent en conflit avec l’installation officielle :

Fenêtre de terminal
sudo apt remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc

Si apt répond qu’aucun de ces paquets n’est installé, passez à l’étape suivante. Cette commande ne supprime pas vos images, conteneurs et volumes existants, conservés dans /var/lib/docker.

Fenêtre de terminal
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update

Le fichier docker.sources utilise le format DEB822. Le nom de la version d’Ubuntu (noble pour 24.04, resolute pour 26.04) est détecté automatiquement.

Fenêtre de terminal
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Paquet Rôle
docker-ce Le service Docker (Docker Engine)
docker-ce-cli La commande docker
containerd.io Le moteur d’exécution des conteneurs
docker-buildx-plugin Construction d’images avancée (docker buildx)
docker-compose-plugin La commande docker compose

Le service démarre automatiquement après l’installation. Vérifiez-le et activez-le au démarrage de la machine :

Fenêtre de terminal
sudo systemctl enable --now docker
sudo systemctl status docker

Lancez ensuite un conteneur de test :

Fenêtre de terminal
sudo docker run --rm hello-world
sudo docker --version
sudo docker compose version

Le message « Hello from Docker! » confirme que tout fonctionne.

Par défaut, seul root peut parler au service Docker. Pour autoriser votre utilisateur :

Fenêtre de terminal
sudo usermod -aG docker $USER

Fermez puis rouvrez votre session (ou lancez newgrp docker), et testez :

Fenêtre de terminal
docker run --rm hello-world

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »

Les commandes de ce guide sont identiques sur les deux versions. Les changements ci-dessous concernent le système ou Docker ; ceux marqués « cassant » peuvent demander une action.

Les ports publiés avec -p contournent les règles d’UFW : Docker écrit directement ses règles iptables. Un service lancé avec -p 8080:80 est donc joignable depuis l’extérieur même si UFW bloque le port 8080.

Pour n’exposer un service qu’à la machine locale, publiez sur 127.0.0.1 :

Fenêtre de terminal
docker run -d -p 127.0.0.1:8080:80 nginx:alpine

Docker se met à jour avec le reste du système :

Fenêtre de terminal
sudo apt update
sudo apt upgrade

Pour mettre à jour uniquement Docker :

Fenêtre de terminal
sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Fenêtre de terminal
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm /etc/apt/sources.list.d/docker.sources /etc/apt/keyrings/docker.asc
Symptôme Cause probable et solution
permission denied ... /var/run/docker.sock L’utilisateur n’est pas dans le groupe docker, ou la session n’a pas été rouverte (section 5)
Cannot connect to the Docker daemon Le service est arrêté : sudo systemctl start docker
E: Unable to locate package docker-ce Le dépôt n’est pas ajouté ou apt update n’a pas été lancé après l’étape 2
Conflit avec containerd ou runc Supprimer les anciens paquets (étape 1)
Lire les logs du service journalctl -u docker --no-pager -n 100