← Réseaux

Docker — installation

Sommaire

Installation sur Ubuntu, à partir du dépôt officiel Docker. La version présente dans les dépôts Ubuntu est souvent ancienne : on passe par le dépôt de l'éditeur.

1. Prérequis

Documentation de référence : docs.docker.com/engine/install/ubuntu. C'est elle qui fait foi, la procédure évoluant d'une version à l'autre.

sudo apt-get update
sudo apt-get install ca-certificates curl

2. Ajouter le dépôt officiel

Deux étapes : récupérer la clé de signature du dépôt, puis déclarer le dépôt lui-même.

# Clé GPG du dépôt Docker
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
# Déclaration du dépôt
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
ÉlémentRôle
/etc/apt/keyrings/Emplacement standard des clés de dépôt depuis Ubuntu 22.04
signed-by=Lie ce dépôt à cette clé précise, et à elle seule
$(dpkg --print-architecture)Détecte l'architecture : amd64, arm64
$VERSION_CODENAMENom de code de la version d'Ubuntu : jammy, noble

La clé de signature n'est pas une formalité. Elle garantit que les paquets téléchargés proviennent bien de Docker et n'ont pas été altérés en chemin. Un dépôt ajouté sans clé, ou avec [trusted=yes], revient à exécuter du code venu d'on ne sait où avec les droits root.

3. Installer les paquets

sudo apt-get install docker-ce docker-ce-cli containerd.io \
     docker-buildx-plugin docker-compose-plugin
PaquetContenu
docker-ceLe moteur, c'est-à-dire le démon dockerd
docker-ce-cliLe client en ligne de commande
containerd.ioLe moteur d'exécution de conteneurs sous-jacent
docker-buildx-pluginConstruction d'images avancée, multi-architecture
docker-compose-pluginLa commande docker compose

4. Configuration post-installation

Après installation, seul root peut piloter Docker. Pour éviter de préfixer chaque commande par sudo, on ajoute son compte au groupe docker.

sudo groupadd docker          # existe déjà après installation, sans effet si c'est le cas
sudo usermod -aG docker $USER
newgrp docker                 # applique le nouveau groupe sans se déconnecter

Activer le démarrage automatique des services :

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Rappel du point de sécurité vu en présentation : appartenir au groupe docker équivaut à disposer des droits root sur l'hôte. Sur un poste personnel ou une maquette, c'est acceptable. Sur un serveur partagé, on l'évite et on passe par sudo, ou l'on déploie Docker en rootless.

5. Vérifier l'installation

docker --version
docker info                  # configuration complète du démon
docker run hello-world

La commande docker run hello-world enchaîne trois opérations qui valident toute la chaîne :

  1. l'image hello-world n'est pas présente localement, Docker la télécharge depuis Docker Hub — le réseau et l'accès au registre fonctionnent ;
  2. il crée un conteneur à partir de cette image — le démon fonctionne ;
  3. le conteneur affiche Hello from Docker! puis s'arrête — l'exécution fonctionne.

Si ce message s'affiche, l'installation est correcte.

6. Gérer le service

sudo systemctl status docker      # état du service
sudo systemctl start docker       # démarrer
sudo systemctl stop docker        # arrêter
sudo systemctl restart docker     # redémarrer
sudo systemctl enable docker      # démarrage automatique
sudo systemctl disable docker     # désactiver le démarrage automatique
journalctl -u docker -f           # suivre les journaux du démon

Docker s'administre comme n'importe quel service systemd — voir la fiche Processus & planification.

7. Problèmes fréquents

SymptômeCause et correction
permission denied while trying to connect to the Docker daemon socket Le compte n'est pas dans le groupe docker, ou la session n'a pas été rouverte. Faire newgrp docker ou se déconnecter / reconnecter.
Cannot connect to the Docker daemon Le service n'est pas démarré : sudo systemctl start docker.
E: Unable to locate package docker-ce Le dépôt n'est pas déclaré correctement, ou apt-get update n'a pas été relancé après.
NO_PUBKEY à la mise à jour La clé GPG est absente ou mal placée. Reprendre l'étape 2.
Téléchargement d'image bloqué Proxy ou pare-feu de l'établissement. Configurer le proxy du démon dans /etc/systemd/system/docker.service.d/.
Manque d'espace disque Les images s'accumulent dans /var/lib/docker. Voir docker system df et le nettoyage dans la fiche Utilisation.

À retenir