Installer Docker Engine sur Debian
Pour commencer avec Docker Engine sur Debian, assurez-vous de répondre aux prérequis, puis suivez les étapes d'installation.
Prérequis
Limitations de pare-feu
WarningAvant d'installer Docker, assurez-vous de considérer les implications de sécurité suivantes et les incompatibilités de pare-feu.
- Si vous utilisez ufw ou firewalld pour gérer les paramètres de pare-feu, sachez que lorsque vous exposez les ports de conteneur en utilisant Docker, ces ports contournent vos règles de pare-feu. Pour plus d'informations, référez-vous à Docker et ufw.
- Docker n'est compatible qu'avec
iptables-nft
etiptables-legacy
. Les règles de pare-feu créées avecnft
ne sont pas supportées sur un système avec Docker installé. Assurez-vous que tous les ensembles de règles de pare-feu que vous utilisez sont créés aveciptables
ouip6tables
, et que vous les ajoutez à la chaîneDOCKER-USER
, voir Filtrage de paquets et pare-feu.
Exigences du système d'exploitation
Pour installer Docker Engine, vous avez besoin de la version 64-bit d'une de ces versions de Debian :
- Debian Trixie 13 (testing)
- Debian Bookworm 12 (stable)
- Debian Bullseye 11 (oldstable)
Docker Engine pour Debian est compatible avec les architectures x86_64 (ou amd64), armhf, arm64 et ppc64le (ppc64el).
Désinstaller les anciennes versions
Avant de pouvoir installer Docker Engine, vous devez désinstaller tous les paquets en conflit.
Votre distribution Linux peut fournir des paquets Docker non officiels, qui peuvent entrer en conflit avec les paquets officiels fournis par Docker. Vous devez désinstaller ces paquets avant d'installer la version officielle de Docker Engine.
Les paquets non officiels à désinstaller sont :
docker.io
docker-compose
docker-doc
podman-docker
De plus, Docker Engine dépend de containerd
et runc
. Docker Engine regroupe ces dépendances en un seul bundle : containerd.io
. Si vous avez installé containerd
ou runc
précédemment, désinstallez-les pour éviter les conflits avec les versions regroupées avec Docker Engine.
Exécutez la commande suivante pour désinstaller tous les paquets en conflit :
$ for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get
pourrait signaler que vous n'avez aucun de ces paquets installés.
Les images, conteneurs, volumes et réseaux stockés dans /var/lib/docker/
ne sont pas automatiquement supprimés lorsque vous désinstallez Docker. Si vous voulez commencer avec une installation propre et préférez nettoyer toutes les données existantes, lisez la section désinstaller Docker Engine.
Méthodes d'installation
Vous pouvez installer Docker Engine de différentes manières, selon vos besoins :
-
Docker Engine est fourni avec Docker Desktop pour Linux. C'est le moyen le plus facile et le plus rapide de commencer.
-
Configurer et installer Docker Engine depuis le dépôt
apt
de Docker. -
L'installer manuellement et gérer les mises à niveau manuellement.
-
Utiliser un script de commodité. Recommandé uniquement pour les environnements de test et de développement.
Installer en utilisant le dépôt apt
Avant d'installer Docker Engine pour la première fois sur une nouvelle machine hôte, vous devez configurer le dépôt apt
de Docker. Ensuite, vous pouvez installer et mettre à jour Docker depuis le dépôt.
-
Configurer le dépôt
apt
de Docker.# Ajouter la clé GPG officielle de Docker : sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Ajouter le dépôt aux sources Apt : echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
NoteSi vous utilisez une distribution dérivée, telle que Kali Linux, vous pourriez avoir besoin de substituer la partie de cette commande qui est censée afficher le nom de code de version :
$(. /etc/os-release && echo "$VERSION_CODENAME")
Remplacez cette partie par le nom de code de la version Debian correspondante, tel que
bookworm
. -
Installer les paquets Docker.
Pour installer la dernière version, exécutez :
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Pour installer une version spécifique de Docker Engine, commencez par lister les versions disponibles dans le dépôt :
# Lister les versions disponibles : $ apt-cache madison docker-ce | awk '{ print $3 }' 5:28.2.2-1~debian.12~bookworm 5:28.1.0-1~debian.12~bookworm ...
Sélectionnez la version désirée et installez :
$ VERSION_STRING=5:28.2.2-1~debian.12~bookworm $ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
-
Vérifiez que l'installation est réussie en exécutant l'image
hello-world
:$ sudo docker run hello-world
Cette commande télécharge une image de test et l'exécute dans un conteneur. Quand le conteneur s'exécute, il affiche un message de confirmation et se ferme.
Vous avez maintenant installé et démarré Docker Engine avec succès.
TipVous recevez des erreurs lorsque vous essayez d'exécuter sans root ?
Le groupe d'utilisateurs
docker
existe mais ne contient aucun utilisateur, c'est pourquoi vous devez utilisersudo
pour exécuter les commandes Docker. Continuez vers Post-installation Linux pour autoriser les utilisateurs non privilégiés à exécuter les commandes Docker et pour d'autres étapes de configuration facultatives.
Mettre à niveau Docker Engine
Pour mettre à niveau Docker Engine, suivez l'étape 2 des instructions d'installation, en choisissant la nouvelle version que vous voulez installer.
Installer depuis un paquet
Si vous ne pouvez pas utiliser le dépôt apt
de Docker pour installer Docker Engine, vous pouvez télécharger le fichier deb
pour votre version et l'installer manuellement. Vous devez télécharger un nouveau fichier à chaque fois que vous voulez mettre à niveau Docker Engine.
-
Sélectionnez votre version de Debian dans la liste.
-
Allez à
pool/stable/
et sélectionnez l'architecture applicable (amd64
,armhf
,arm64
ouppc64el
). -
Téléchargez les fichiers
deb
suivants pour les paquets Docker Engine, CLI, containerd et Docker Compose :containerd.io_<version>_<arch>.deb
docker-ce_<version>_<arch>.deb
docker-ce-cli_<version>_<arch>.deb
docker-buildx-plugin_<version>_<arch>.deb
docker-compose-plugin_<version>_<arch>.deb
-
Installez les paquets
.deb
. Mettez à jour les chemins dans l'exemple suivant vers l'endroit où vous avez téléchargé les paquets Docker.$ sudo dpkg -i ./containerd.io_<version>_<arch>.deb \ ./docker-ce_<version>_<arch>.deb \ ./docker-ce-cli_<version>_<arch>.deb \ ./docker-buildx-plugin_<version>_<arch>.deb \ ./docker-compose-plugin_<version>_<arch>.deb
Le daemon Docker démarre automatiquement.
-
Vérifiez que l'installation est réussie en exécutant l'image
hello-world
:$ sudo docker run hello-world
Cette commande télécharge une image de test et l'exécute dans un conteneur. Quand le conteneur s'exécute, il affiche un message de confirmation et se ferme.
Vous avez maintenant installé et démarré Docker Engine avec succès.
TipVous recevez des erreurs lorsque vous essayez d'exécuter sans root ?
Le groupe d'utilisateurs
docker
existe mais ne contient aucun utilisateur, c'est pourquoi vous devez utilisersudo
pour exécuter les commandes Docker. Continuez vers Post-installation Linux pour autoriser les utilisateurs non privilégiés à exécuter les commandes Docker et pour d'autres étapes de configuration facultatives.
Mettre à niveau Docker Engine
Pour mettre à niveau Docker Engine, téléchargez les fichiers de paquet plus récents et répétez la procédure d'installation, en pointant vers les nouveaux fichiers.
Installer à l'aide du script de commodité
Docker fournit un script de commodité à l'adresse
https://get.docker.com/ pour installer Docker dans
des environnements de développement de manière non interactive. Le script de commodité n'est pas
recommandé pour les environnements de production, mais il est utile pour créer un
script de provisionnement adapté à vos besoins. Référez-vous également aux
étapes d'installation à l'aide du dépôt pour en savoir plus
sur les étapes d'installation à l'aide du dépôt de paquets. Le code source
du script est open source, et vous pouvez le trouver dans le
dépôt docker-install
sur GitHub.
Examinez toujours les scripts téléchargés sur Internet avant de les exécuter localement. Avant l'installation, familiarisez-vous avec les risques et limitations potentiels du script de commodité :
- Le script nécessite les privilèges
root
ousudo
pour s'exécuter. - Le script tente de détecter votre distribution et votre version de Linux et de configurer votre système de gestion de paquets pour vous.
- Le script ne vous permet pas de personnaliser la plupart des paramètres d'installation.
- Le script installe les dépendances et les recommandations sans demander de confirmation. Cela peut installer un grand nombre de paquets, en fonction de la configuration actuelle de votre machine hôte.
- Par défaut, le script installe la dernière version stable de Docker, containerd et runc. Lorsque vous utilisez ce script pour provisionner une machine, cela peut entraîner des mises à niveau majeures inattendues de Docker. Testez toujours les mises à niveau dans un environnement de test avant de les déployer sur vos systèmes de production.
- Le script n'est pas conçu pour mettre à niveau une installation Docker existante. Lorsque vous utilisez le script pour mettre à jour une installation existante, les dépendances peuvent ne pas être mises à jour vers la version attendue, ce qui entraîne des versions obsolètes.
TipPrévisualisez les étapes du script avant de l'exécuter. Vous pouvez exécuter le script avec l'option
--dry-run
pour savoir quelles étapes le script exécutera lorsqu'il sera invoqué :$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh ./get-docker.sh --dry-run
Cet exemple télécharge le script depuis https://get.docker.com/ et l'exécute pour installer la dernière version stable de Docker sur Linux :
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>
Vous avez maintenant installé et démarré avec succès Docker Engine. Le service docker
démarre automatiquement sur les distributions basées sur Debian. Sur les distributions RPM
,
telles que CentOS, Fedora, RHEL ou SLES, vous devez le démarrer
manuellement à l'aide de la commande systemctl
ou service
appropriée. Comme l'indique le message,
les utilisateurs non-root ne peuvent pas exécuter les commandes Docker par défaut.
Utiliser Docker en tant qu'utilisateur non privilégié, ou l'installer en mode rootless ?
Le script d'installation nécessite les privilèges
root
ousudo
pour installer et utiliser Docker. Si vous souhaitez autoriser les utilisateurs non-root à accéder à Docker, consultez les étapes de post-installation pour Linux. Vous pouvez également installer Docker withoutroot
privileges, ou configuré pour fonctionner en mode rootless. Pour obtenir des instructions sur l'exécution de Docker en mode rootless, reportez-vous à exécuter le démon Docker en tant qu'utilisateur non-root (mode rootless).
Installer les pré-versions
Docker fournit également un script de commodité à l'adresse
https://test.docker.com/ pour installer les pré-versions de
Docker sur Linux. Ce script est identique au script de get.docker.com
, mais
configure votre gestionnaire de paquets pour utiliser le canal de test du dépôt de paquets Docker.
Le canal de test inclut à la fois les versions stables et les pré-versions (versions bêta,
versions candidates) de Docker. Utilisez ce script pour accéder en avant-première aux
nouvelles versions et pour les évaluer dans un environnement de test avant qu'elles ne soient
publiées en version stable.
Pour installer la dernière version de Docker sur Linux à partir du canal de test, exécutez :
$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh
Mettre à niveau Docker après avoir utilisé le script de commodité
Si vous avez installé Docker à l'aide du script de commodité, vous devez mettre à niveau Docker directement à l'aide de votre gestionnaire de paquets. Il n'y a aucun avantage à ré-exécuter le script de commodité. Le ré-exécuter peut causer des problèmes s'il tente de réinstaller des dépôts qui existent déjà sur la machine hôte.
Désinstaller Docker Engine
-
Désinstallez les paquets Docker Engine, CLI, containerd et Docker Compose :
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
-
Les images, conteneurs, volumes ou fichiers de configuration personnalisés sur votre hôte ne sont pas automatiquement supprimés. Pour supprimer toutes les images, conteneurs et volumes :
$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
-
Supprimer la liste des sources et les trousseaux de clés
$ sudo rm /etc/apt/sources.list.d/docker.list $ sudo rm /etc/apt/keyrings/docker.asc
Vous devez supprimer manuellement tous les fichiers de configuration modifiés.
Prochaines étapes
- Continuez vers Étapes post-installation pour Linux.