Installer Docker sur les distributions Linux populaires : guide d'installation de Docker sous Linux
Niveau : Intermédiaire
Durée estimée : ~15 minutes
Objectif : Configurer un environnement sécurisé et décentralisé en installant Docker afin d'auto-héberger des services personnels tels que Nextcloud, Bitwarden et Matrix.
Introduction
Héberger vos propres services « cloud » garantit la confidentialité et la pleine propriété de vos données. Pour déployer des services comme Nextcloud (stockage de fichiers), Bitwarden (gestion des mots de passe) ou Matrix (communication sécurisée) sans avoir à gérer des dépendances complexes au niveau de l'hôte, il faut des environnements isolés. Dans ce tutoriel, nous verrons comment installer Docker sous Linux afin de construire une base d'auto-hébergement robuste et reproductible. Que vous ayez besoin d'une installation complète de Docker sous Linux pour un seul serveur ou pour un parc entier, chacune des étapes ci-dessous s'applique à Ubuntu, Debian et aux distributions compatibles RHEL. À la fin de ce guide d'installation de Docker sous Linux, vous disposerez d'un environnement prêt pour la production, configuré avec des paramètres de sécurité par défaut conformes aux bonnes pratiques.
Terminologie
Avant de poursuivre, assurez-vous de bien comprendre ces concepts essentiels :
- Docker : une plateforme pour développer, distribuer et exécuter des applications dans des environnements isolés.
- Docker Engine : la technologie client-serveur centrale qui crée et exécute les conteneurs.
- Conteneur (Container) : un composant exécutable standardisé qui associe le code source d'une application aux bibliothèques du système d'exploitation et aux dépendances nécessaires à son exécution.
- Image : un modèle en lecture seule contenant les instructions de création d'un conteneur.
- Démon Docker (Docker daemon) : le service d'arrière-plan exécuté sur l'hôte qui gère la construction, l'exécution et la distribution des conteneurs.
- Docker CLI : l'interface en ligne de commande utilisée pour interagir avec le démon.
- Docker Hub : un registre public maintenu par Docker pour rechercher et partager des images de conteneurs.
- Registre (Registry) : un système de stockage et de distribution d'images de conteneurs.
- Installation : le processus qui rend les programmes prêts à être exécutés.
- Gestionnaire de paquets : un outil logiciel qui automatise l'installation, la mise à niveau, la configuration et la suppression des programmes.
- Dépôt (Repository) : un emplacement central où les paquets logiciels sont stockés et maintenus.
- Dépôt officiel de Docker : la source de confiance maintenue par Docker pour obtenir des paquets logiciels stables.
- Paquet : une archive compressée contenant tous les fichiers fournis avec une application donnée.
- Dépendance : un programme ou une bibliothèque dont un autre programme a besoin pour fonctionner correctement.
- Version stable (Stable release) : une version d'un logiciel qui a été testée à fond et est considérée comme fiable pour un usage en production.
- Version : un état unique du logiciel reflétant ses fonctionnalités et correctifs propres.
Prérequis
Avant de commencer, assurez-vous que les conditions suivantes sont remplies :
- Système d'exploitation : Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 ou compatible RHEL (AlmaLinux, Rocky, RHEL) 8/9/10
- Accès : accès sudo ou root au serveur
- Connaissances requises : maîtrise de la ligne de commande Linux
Étape 1 : Configurer le dépôt Docker
Pour obtenir la version la plus récente, sûre et stable, utilisez toujours le dépôt officiel de Docker plutôt que les dépôts par défaut du système d'exploitation.
Pour Ubuntu :
Commencez par mettre à jour l'index du gestionnaire de paquets Linux et installez les paquets nécessaires pour permettre à apt d'utiliser un dépôt via HTTPS :
sudo apt update sudo apt install ca-certificates curl gnupg lsb-release
Ajoutez la clé GPG officielle de Docker :
sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Configurez le dépôt stable :
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
Pour Debian :
Les étapes pour installer Docker sous Debian reprennent celles d'Ubuntu, mais pointent vers l'URL de dépôt propre à Debian. Commencez par mettre à jour l'index du gestionnaire de paquets Linux et installez les paquets nécessaires :
sudo apt update sudo apt install ca-certificates curl gnupg lsb-release
Ajoutez la clé GPG officielle de Docker :
sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Configurez le dépôt stable :
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Pour les distributions compatibles RHEL (AlmaLinux, Rocky, RHEL) :
Installez le paquet yum-utils et configurez le dépôt stable :
sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Docker publie ses paquets pour toutes les distributions compatibles RHEL (y compris AlmaLinux et Rocky Linux) sous le chemin de dépôt centos. L'utilisation de cette URL est normale et entièrement prise en charge.
Résultat : Le dépôt Docker est maintenant ajouté à votre système, ce qui permet au gestionnaire de paquets de récupérer les derniers paquets Docker.
Étape 2 : Installer Docker sur Ubuntu et Debian
Une fois le dépôt Docker configuré, passez à l'installation de Docker Engine sur Ubuntu (ou Debian - les commandes sont identiques). Cette étape s'applique aux deux distributions.
Commencez par supprimer les paquets en conflit fournis par les dépôts du système d'exploitation :
sudo apt remove docker.io podman-docker containerd runc
Mettez à nouveau à jour l'index des paquets apt, puis utilisez le gestionnaire de paquets Linux pour installer les composants requis :
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin
Résultat : La commande s'exécute et récupère les paquets ainsi que toutes les dépendances nécessaires depuis le dépôt Docker. Le gestionnaire de paquets devrait terminer l'installation de Docker Engine sans erreur.
docker-ce désigne Docker Community Edition, la version gratuite, idéale pour l'auto-hébergement.
Étape 3 : Installer Docker sur les distributions compatibles RHEL (AlmaLinux, Rocky, RHEL)
Sur les systèmes basés sur RHEL, utilisez yum pour installer Docker Engine.
Commencez par supprimer les paquets en conflit fournis par les dépôts du système d'exploitation :
sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc
Exécutez la commande suivante :
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin
Résultat : Le gestionnaire de paquets installe les paquets nécessaires. Il vous sera demandé d'accepter la clé GPG (sauf si vous passez l'option -y) ; confirmez. Une fois l'opération terminée, un message de réussite s'affiche.
Étape 4 : Vérification de l'installation de Docker Engine
Après l'installation, le comportement du démon Docker varie selon la distribution. Sur Ubuntu et Debian, docker.service démarre automatiquement dès l'installation. Sur les distributions de la famille RHEL, ce n'est pas le cas.
Famille RHEL uniquement : si le processus d'installation a mis à jour le noyau (par exemple via une dépendance kernel-core), redémarrez le serveur avant de lancer le service Docker :
sudo reboot
Ignorer cette étape peut faire échouer systemctl start docker avec des erreurs br_netfilter / addrtype, car le noyau en cours d'exécution ne correspond plus aux modules installés.
Une fois le serveur démarré sur le noyau à jour, démarrez et activez le service. Les commandes suivantes sont idempotentes et peuvent être exécutées sans risque sur tous les systèmes :
sudo systemctl start docker sudo systemctl enable docker
Résultat : Le démon Docker démarre et le système crée un lien symbolique afin qu'il se lance automatiquement à chaque redémarrage.
Vérifiez que l'installation de Docker Engine a réussi en exécutant l'image hello-world :
sudo docker run hello-world
Résultat : Le Docker CLI contacte le démon Docker, télécharge l'image hello-world depuis Docker Hub et exécute un conteneur. Vous devriez voir s'afficher dans votre terminal le message « Hello from Docker! ».
Étape 5 : Étapes post-installation de Docker
Par défaut, l'exécution des commandes Docker nécessite sudo. Pour les exécuter en tant qu'utilisateur non root, vous devez ajouter votre utilisateur au groupe docker. Ce sont les étapes post-installation de Docker indispensables pour gérer confortablement votre infrastructure auto-hébergée.
Créez le groupe docker (s'il n'existe pas déjà) :
getent group docker || sudo groupadd docker
Ajoutez votre utilisateur au groupe docker :
sudo usermod -aG docker $USER
Résultat : Votre utilisateur est ajouté au groupe. Pour que les changements prennent effet, vous devez vous déconnecter puis vous reconnecter, ou activer la nouvelle appartenance au groupe dans la session en cours :
newgrp docker
newgrp docker crée un nouveau shell avec l'appartenance aux groupes mise à jour. Toute commande docker exécutée ensuite fonctionnera sans sudo, mais uniquement dans ce nouveau shell. L'ouverture d'un autre terminal nécessite toujours une reconnexion complète.
L'appartenance au groupe docker confère des privilèges équivalents à un accès root sur l'hôte. Pour les environnements d'auto-hébergement qui privilégient la sécurité, envisagez sérieusement d'exécuter Docker en mode rootless (voir l'Étape 6).
Après avoir exécuté newgrp docker (ou vous être déconnecté puis reconnecté), testez la configuration en lançant une commande sans sudo :
docker run hello-world
Résultat : Vous devriez voir à nouveau le message « Hello from Docker! », ce qui confirme que vos étapes post-installation de Docker ont réussi.
Alternative : installation rapide via le script de commodité
Pour les environnements de test ou de développement, Docker fournit un script de commodité (convenience script).
Cette méthode n'est pas recommandée en production. Elle s'exécute sans épinglage de version, effectue une mise à niveau inconditionnelle si Docker est déjà installé et récupère toutes les dépendances sans vérification.
Il est recommandé de télécharger le script et de l'examiner avant de l'exécuter :
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
Étape 6 (facultative) : Exécuter Docker en mode rootless
Pour les environnements d'auto-hébergement, exécuter Docker en mode rootless renforce la sécurité, car le démon Docker et les conteneurs s'exécutent sous un utilisateur non root.
6.1 Prérequis
Commencez par arrêter et désactiver le service et le socket Docker à l'échelle du système, puis supprimez le fichier de socket :
sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock
Vérifiez que subuid et subgid sont configurés pour votre utilisateur (généralement fait automatiquement) :
cat /etc/subuid cat /etc/subgid
Activez le lingering pour votre utilisateur afin que le démon puisse démarrer au boot :
sudo loginctl enable-linger $USER
6.2 Installer les paquets supplémentaires
Pour Ubuntu/Debian :
sudo apt install docker-ce-rootless-extras uidmap dbus-user-session
Pour AlmaLinux/RHEL (shadow-utils fournit uidmap et est généralement préinstallé) :
sudo yum install docker-ce-rootless-extras
6.3 Installer le démon rootless
Exécutez le script d'installation depuis une session de connexion complète de l'utilisateur cible (et non depuis sudo su ou un shell SSH sans connexion). Si vous êtes dans un contexte sans connexion, exportez d'abord les variables requises :
export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus
Exécutez ensuite le script d'installation :
dockerd-rootless-setuptool.sh install
La première exécution du script d'installation, immédiatement après l'activation du lingering, peut être instable. Si le démon ne démarre pas, relancez simplement le script d'installation.
6.4 Configurer les variables d'environnement
Ajoutez les variables suivantes au fichier de configuration de votre shell (par exemple ~/.bashrc) :
export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
Rechargez le fichier (source) ou redémarrez votre shell pour appliquer les changements.
6.5 Limitations du mode rootless
- Impossible de publier des ports < 1024 (Docker propose des contournements comme
setcap, la redirection de ports viaslirp4netnsou le routage). - Pas de prise en charge de
--net=host. - Le mode Swarm et les réseaux overlay ne sont pas pris en charge.
- AppArmor n'est pas pris en charge.
- L'option
--privilegedn'accorde pas d'accès root au niveau de l'hôte. - Les données sont stockées dans
~/.local/share/docker(à prendre en compte pour les sauvegardes et les quotas). - Nécessite cgroup v2.
- Utilise le pilote de stockage
overlayfsau lieu deoverlay2.
Retour arrière (rollback)
Si vous devez annuler l'installation de Docker sous Linux - qu'il s'agisse d'une installation standard ou d'une configuration rootless - suivez les étapes ci-dessous dans l'ordre.
1. Retour arrière du mode rootless (à ignorer si le mode rootless n'a pas été configuré) :
Si vous avez configuré le mode rootless, annulez d'abord ces changements, avant de supprimer les paquets :
dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER
Exécuter la désinstallation du mode rootless après la purge des paquets échouera, car le script d'installation fait partie du paquet docker-ce-rootless-extras. Désinstallez toujours le mode rootless tant que les paquets sont encore présents.
2. Supprimer les paquets :
Debian/Ubuntu :
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg
AlmaLinux/Rocky/RHEL :
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo
3. Supprimer le groupe :
sudo groupdel docker || true
La suppression des paquets ne supprime pas automatiquement les images, conteneurs, volumes ni fichiers de configuration personnalisés. Les commandes rm -rf suppriment définitivement ces répertoires de données.
Conclusion
Votre installation de Docker sous Linux est terminée et vérifiée. Les fondations sont désormais posées de manière sécurisée. Vous pouvez passer au déploiement de conteneurs pour vos outils auto-hébergés, en gardant un contrôle total sur vos fichiers Nextcloud, vos coffres Bitwarden et vos communications Matrix.
Version du document : 1.0
Dernière mise à jour : mai 2026
Propriétaire : Équipe de documentation technique