Recherche de site Web

Installer Docker sur Debian en mode root


Docker est l'une des plateformes de conteneurisation les plus populaires, vous permettant d'exécuter des applications dans des environnements isolés. Par défaut, Docker fonctionne en mode rootful, ce qui signifie qu'il utilise les privilèges root du système pour gérer les conteneurs. Cette configuration est idéale pour la plupart des utilisateurs qui recherchent une meilleure compatibilité et moins de problèmes de configuration.

Dans ce guide, vous apprendrez comment installer et configurer le moteur Docker et Docker Compose sur un système Debian propre en utilisant le mode root.

Pourquoi choisir Rootful Docker ?

Docker Rootful signifie que le daemon Docker fonctionne en tant que root et gère les conteneurs avec des privilèges élevés.

Avantages :

  • Compatibilité totale avec la plupart des images et des applications
  • Réseautage et mappage de ports plus faciles
  • Meilleure intégration avec les outils système

Inconvénients :

  • Moins sûr que le mode sans root car le démon s'exécute avec les privilèges root

Docker avec privilèges root est parfaitement acceptable si :

  • Vous êtes le seul utilisateur sur le système.
  • Vous exécutez des images de confiance (par exemple, provenant de sources officielles ou vérifiées).
  • Vous n’exposez pas le socket Docker.
  • Vous évitez les conteneurs privilégiés et les capacités dangereuses.

C'est pourquoi de nombreux systèmes de production utilisent encore Docker avec privilèges root.

Si l'isolation de sécurité est votre priorité absolue, vous pouvez plus tard passer à Docker sans root. Nous publierons bientôt un guide à ce sujet.

Exigences Docker

Pour installer et configurer Docker, votre système doit répondre aux exigences minimales suivantes.

  1. 64 bits systèmes d'exploitation Linux ou Windows.
  2. Si vous êtes sur Linux, la version du noyau doit être 3.10 ou supérieure.
  3. Un compte utilisateur avec des privilèges sudo.
  4. VT (technologie de virtualisation) activé dans le BIOS de votre système. [Lire : Comment savoir si un CPU prend en charge la technologie de virtualisation (VT)]
  5. Votre système doit être connecté à Internet.

Étape 1. Mettez à jour votre système

Maintenir votre système à jour garantit que vous disposez des derniers correctifs de sécurité.

Pour mettre à jour votre système Debian, exécutez :

sudo apt update && sudo apt upgrade -y

Étape 2. Désinstaller les anciennes versions de Docker (Optionnel)

Remarque : Si c'est un système Debian fraîchement installé, vous pouvez passer cette étape.

Si vous avez précédemment installé Podman, Docker ou d'autres environnements d'exécution de conteneurs, supprimez-les d'abord :

sudo apt remove -y docker docker-engine docker.io containerd runc podman
sudo apt autoremove -y

Supprimez également tous les dépôts restants :

sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/sources.list.d/podman.list

Étape 3. Ajouter le dépôt officiel Docker

Installer les dépendances :

sudo apt install -y ca-certificates curl gnupg lsb-release

Ajoutez la clé GPG de Docker :

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Ajoutez le dépôt Docker :

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

Dans le dernier Debian 13, il est recommandé de moderniser les sources apt.

Pour ce faire, exécutez :

sudo apt modernize-sources

Mettre à jour les listes de paquets :

sudo apt update

Étape 4. Installer Docker Engine et Docker Compose sur Debian

Pour installer le moteur Docker, Docker Compose ainsi que tous les composants requis sur Debian 13, exécutez :

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Installer Docker Engine et Docker Compose sur Debian 13 Trixie

Cette commande installe :

  • Moteur Docker
  • CLI Docker
  • Plugin Docker Compose

Étape 5. Activer et démarrer Docker

Activez le service Docker au démarrage du système en utilisant les commandes :

sudo systemctl enable docker
sudo systemctl start docker

Vérifiez l'état du service :

sudo systemctl status docker

Exemple de sortie :

docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-09-02 15:46:43 IST; 7min ago
 Invocation: a87449e79b744dbbb36c7bfd131415fc
TriggeredBy: \u25cf docker.socket
       Docs: https://docs.docker.com
   Main PID: 3427 (dockerd)
      Tasks: 9
     Memory: 21.9M (peak: 23.4M)
        CPU: 337ms
     CGroup: /system.slice/docker.service
             /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
[...]

Comme vous pouvez le voir dans la sortie ci-dessus, le service docker est chargé et en cours d'exécution.

Étape 6. Vérifier l'installation de Docker

Pour vérifier si Docker est correctement installé et fonctionne, exécutez le conteneur de test hello-world :

sudo docker run hello-world

Si cela réussit, vous verrez un message de confirmation.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
17eec7bbc9d7: Pull complete 
Digest: sha256:a0dfb02aac212703bfcb339d77d47ec32c8706ff250850ecc0e19c8737b18567
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/
For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Exécuter le conteneur Docker Hello World

Étape 7 : Vérifier la version de Docker

Pour vérifier la version de Docker installée, exécutez :

sudo docker version

Exemple de sortie :

Client: Docker Engine - Community
 Version:           28.3.3
 API version:       1.51
 Go version:        go1.24.5
 Git commit:        980b856
 Built:             Fri Jul 25 11:34:13 2025
 OS/Arch:           linux/amd64
 Context:           default
Server: Docker Engine - Community
 Engine:
  Version:          28.3.3
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.5
  Git commit:       bea959c
  Built:            Fri Jul 25 11:34:13 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.27
  GitCommit:        05044ec0a9a75232cad458027ca83437aae3f4da
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Vérifier la version de Docker

Étape 8. Gérer Docker sans sudo (Facultatif)

Par défaut, Docker nécessite des privilèges root.

Pour gérer les conteneurs sans sudo, ajoutez votre utilisateur au groupe docker :

sudo usermod -aG docker $USER
newgrp docker

Vérifiez maintenant si vous pouvez gérer Docker sans utiliser sudo :

docker ps

S'il n'y a pas d'erreurs de permission, vous êtes prêt à partir.

Gérer Docker sans Sudo

Étape 9. Vérifiez si Docker fonctionne en mode root

Courir :

sudo docker info | grep -i rootless

Si vous ne voyez rien, Docker fonctionne en mode root.

Vérifiez qui exécute le processus démon :

ps aux | grep dockerd

Exemple de sortie :

root        3427  0.0  1.0 2045556 84480 ?       Ssl  15:46   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Ici,

  • Le processus dockerd s'exécute en tant que root. Cela confirme donc Docker avec privilèges root.
  • Le démon utilise le socket containerd du système : /run/containerd/containerd.sock.

Étape 10. Activer Docker Compose

Docker inclut maintenant Compose en tant que plugin :

docker compose version

Si vous avez besoin de la version la plus récente, vous pouvez télécharger le binaire autonome de Compose depuis la page releases officielles de Docker Compose sur GitHub :

sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Étape 11 : Commencer avec Docker

Après l'installation, vous pouvez commencer à déployer vos applications conteneurisées dans Docker. Nous avons compilé un guide détaillé sur l'utilisation de Docker avec des exemples. Veuillez vérifier le lien suivant :

  • Commencer avec Docker | Guide pour débutants

[Optionnel] Migrer vers Docker sans privilèges

Le mode sans racine vous permet d'exécuter Docker sans privilèges root pour une sécurité accrue.

Quelques avantages importants du mode Docker sans racine sont :

  • dockerd s'exécute en tant qu'utilisateur normal.
  • Même si un conteneur s'échappe, il n'a qu'un accès au niveau utilisateur sur l'hôte.
  • Fournit une isolation plus forte, notamment dans les environnements partagés ou non fiables.

Docker sans racine mérite d'être envisagé si :

  • Vous êtes dans un environnement multi-utilisateur.
  • Vous utilisez des images non fiables.
  • Vous voulez une défense en profondeur plus forte.
  • Vous devez respecter des politiques strictes de conformité/sécurité.

Veuillez noter que Docker sans privilèges n'est pas une solution miracle, mais il rend les échappées de conteneurs moins catastrophiques.

Si vous voulez une isolation maximale et la tranquillité d'esprit, surtout lorsque vous expérimentez avec des images tierces, passez à Docker rootless comme expliqué dans le guide ci-dessous.

  • Passer à Docker sans privilèges sur Debian et Ubuntu Linux

Dépannage

1. Conflits de l'ancien dépôt

Si vous avez accidentellement ajouté un dépôt Ubuntu pour Docker sur Debian, vous pouvez le supprimer :

sudo rm /etc/apt/sources.list.d/docker.list
sudo apt update

Et ensuite ajoutez le dépôt correct pour votre système Debian.

2. Le démon Docker ne démarre pas

Redémarrez le service Docker et vérifiez les journaux pour d'éventuels indices :

sudo systemctl restart docker
sudo journalctl -u docker --no-pager

3. Conflits de ports

Assurez-vous que les ports que vous mappez dans les conteneurs ne sont pas déjà utilisés :

sudo ss -tulnp | grep 8000

Questions Fréquemment Posées (FAQ)

Q : Devrais-je utiliser Docker en mode root ou sans root ?

A: Avec root: Installation plus facile, meilleure compatibilité et recommandé pour la plupart des utilisateurs.
Sans root: Plus sûr, mais légèrement plus difficile à configurer.

Q : Comment passer à Docker sans root plus tard ?

A : Désinstallez Docker avec privilèges root et suivez le Guide officiel d'installation de Docker sans root. Vous pouvez également utiliser Podman, qui fonctionne en mode sans root par défaut.

Q : Docker Compose est-il installé par défaut ?

A : Oui, Docker Compose v2 est inclus en tant que plugin.

Conclusion

Dans ce guide étape par étape, nous avons appris comment installer et configurer le moteur Docker en mode Rootful sur le dernier système Debian 13. Nous avons également expliqué comment installer Docker Compose et quelques conseils courants de dépannage.

Lecture suggérée :

  • Configurer Docker et Docker Compose avec DockSTARTer
  • Comment mettre automatiquement à jour les conteneurs Docker en cours d'exécution
  • ctop – Un outil de surveillance en ligne de commande pour les conteneurs Linux
  • Portainer – La façon la plus simple de gérer Docker
  • PiCluster – Une application de gestion Docker simple basée sur le web
  • Dockly - Gérer les conteneurs Docker depuis le terminal