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
- Une distribution Linux 64 bits — ici Ubuntu.
- Un accès
sudo. - Une connexion réseau sortante vers
download.docker.com.
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ément | Rô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_CODENAME | Nom 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
| Paquet | Contenu |
|---|---|
docker-ce | Le moteur, c'est-à-dire le démon dockerd |
docker-ce-cli | Le client en ligne de commande |
containerd.io | Le moteur d'exécution de conteneurs sous-jacent |
docker-buildx-plugin | Construction d'images avancée, multi-architecture |
docker-compose-plugin | La 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 :
- l'image
hello-worldn'est pas présente localement, Docker la télécharge depuis Docker Hub — le réseau et l'accès au registre fonctionnent ; - il crée un conteneur à partir de cette image — le démon fonctionne ;
- 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ôme | Cause 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
- Passer par le dépôt officiel Docker, pas celui d'Ubuntu (version trop ancienne)
- Étapes : clé GPG → dépôt → apt update → installation
- Paquets :
docker-ce,docker-ce-cli,containerd.io, buildx, compose usermod -aG docker $USERpuisnewgrp dockersystemctl enable dockerpour le démarrage automatiquedocker run hello-worldvalide réseau, registre, démon et exécutionpermission denied→ groupedockerou session non rouverteCannot connect to the daemon→ service arrêté- Groupe
docker= root sur l'hôte : à éviter sur un serveur partagé