Installer Docker sur Ubuntu : APT, Snap, Rootless — Guide complet 2026
Choisissez le bon chemin d'installation de Docker sur Ubuntu.
L’installation de Docker sur Ubuntu devrait être simple, mais en pratique, plusieurs options « en forme de Docker » rivalisent pour le même nom de commande, chacune avec sa propre gestion des paquets, son comportement de mise à jour et ses implications en matière de sécurité.
Ce guide compare toutes les méthodes d’installation majeures afin que vous puissiez choisir celle qui convient à votre machine.
Les options que vous rencontrerez incluent :
docker.ioprovenant des dépôts Ubuntudocker-ceprovenant du dépôt APT officiel de Docker- Docker via Snap
- Docker Desktop
- les paquets
.debtéléchargés manuellement - le script d’installation pratique de Docker (convenience script)
- Docker sans privilèges root (Rootless Docker)

Bien qu’elles fournissent toutes des outils de conteneurisation, ces paquets ne sont pas interchangeables. Le meilleur choix dépend de savoir si la machine est une station de travail de développeur, un exécuteur CI, un petit serveur, un boîtier d’hébergement personnel ou un hôte de production. Ma recommandation par défaut est calme mais ferme : pour la plupart des utilisateurs techniques sur des machines Ubuntu normales, installez Docker Engine depuis le dépôt APT officiel de Docker. Utilisez docker.io d’Ubuntu uniquement lorsque l’intégration à la distribution est plus importante que l’empaquetage upstream de Docker. Évitez le paquet Snap sauf si vous souhaitez spécifiquement le comportement Snap et que vous en comprenez les limites. Rootless Docker vaut la peine d’être connu, mais ce n’est pas automatiquement la meilleure option par défaut pour chaque machine.
Ce guide explique les compromis, couvre la sécurité post-installation et vous offre des chemins d’installation propres pour chaque méthode. Une fois le moteur Docker en cours d’exécution, la Fiche de référence Docker est votre référence quotidienne de commandes, et la Fiche de référence Docker Compose couvre les configurations multi-conteneurs. Ces deux guides figurent aux côtés des guides Git, VS Code et CI/CD dans Outils de développement : Le guide complet des workflows de développement modernes.
Recommandation rapide
Le tableau ci-dessous résume quelle méthode d’installation convient aux scénarios courants.
| Cas d’utilisation | Installation recommandée |
|---|---|
| Station de travail de développeur | Dépôt APT officiel de Docker |
| Exécuteur CI | Dépôt APT officiel de Docker, version figée si nécessaire |
| Petit serveur auto-hébergé | Dépôt APT officiel de Docker |
| Serveur de production | Dépôt APT officiel de Docker, mises à jour contrôlées |
| Système Ubuntu conservateur | Paquet Ubuntu docker.io |
| Expérience rapide sur bureau | Docker Desktop ou dépôt APT officiel |
| Configuration Ubuntu gérée par Snap | Docker Snap, avec prudence |
| Exigence forte de démon non-root | Rootless Docker |
| Hôte isolé (air-gapped) | Paquets .deb manuels ou miroir interne |
Si vous n’avez pas de raison particulière de choisir autrement, le dépôt APT officiel de Docker est l’option par défaut.
Ce qui est installé
Une configuration normale de Docker Engine comprend plusieurs composants :
- Le démon Docker :
dockerd - Le CLI Docker :
docker - Le runtime de conteneurs :
containerd - Le runtime de bas niveau :
runc - Le plugin Buildx :
docker buildx - Le plugin Compose :
docker compose
Docker Compose moderne est généralement installé en tant que plugin du CLI Docker. Cela signifie que la commande est :
docker compose version
Et non :
docker-compose version
L’ancienne commande docker-compose existe encore dans les anciens guides et sur les anciens systèmes, mais les nouvelles configurations Ubuntu devraient généralement utiliser le plugin Compose.
Option 1 : Installer Docker depuis le dépôt APT officiel de Docker
C’est la meilleure option par défaut pour la plupart des développeurs et utilisateurs DevOps. Vous obtenez l’empaquetage upstream de Docker, les versions actuelles de Docker Engine, Buildx, le plugin Compose et un chemin de mise à jour APT standard.
Supprimer d’abord les paquets en conflit
Avant d’installer Docker CE, supprimez les paquets qui pourraient entrer en conflit avec les paquets officiels de Docker.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
Il est normal que APT indique que certains de ces paquets ne sont pas installés.
Cette commande ne supprime pas les images Docker, conteneurs, volumes ou réseaux stockés sous /var/lib/docker. Si vous souhaitez une réinitialisation propre, c’est une étape séparée qui doit être effectuée délibérément.
Ajouter le dépôt APT officiel de Docker
Installez les prérequis :
sudo apt update
sudo apt install ca-certificates curl
Créez le répertoire du trousseau de clés (keyring) :
sudo install -m 0755 -d /etc/apt/keyrings
Téléchargez la clé du dépôt Docker :
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
Autorisez APT à lire la clé :
sudo chmod a+r /etc/apt/keyrings/docker.asc
Ajoutez le dépôt Docker en utilisant le format .sources deb822 :
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Mettez à jour les métadonnées APT :
sudo apt update
Installer Docker Engine, Buildx et Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Vérifiez le service :
sudo systemctl status docker
S’il n’est pas en cours d’exécution :
sudo systemctl start docker
Vérifiez l’installation :
sudo docker run hello-world
Vérifiez les versions :
docker --version
docker buildx version
docker compose version
À ce stade, Docker fonctionne, bien que vous ayez toujours besoin de sudo pour la plupart des commandes, à moins que vous ne configuriez l’accès non-root dans la section post-installation ci-dessous.
Option 2 : Installer Docker depuis les dépôts Ubuntu
Ubuntu fournit le paquet docker.io, que vous pouvez installer avec :
sudo apt update
sudo apt install docker.io docker-compose-v2
Démarrez et activez Docker :
sudo systemctl enable --now docker
Vérifiez :
sudo docker run hello-world
Quand docker.io d’Ubuntu est un bon choix
Le paquet d’Ubuntu peut être un bon choix lorsque :
- Vous préférez les paquets maintenus par Ubuntu.
- Vous voulez une version alignée avec le processus de publication d’Ubuntu.
- Vous gérez de nombreux hôtes Ubuntu avec des dépôts standards.
- Vous n’avez pas besoin de la dernière version upstream de Docker.
- Vous souhaitez moins de sources APT tierces.
C’est un choix raisonnable. Ce n’est pas “faux”.
Quand docker.io d’Ubuntu n’est pas idéal
Utilisez plutôt le dépôt officiel de Docker lorsque :
- Vous voulez le moteur Docker upstream actuel.
- Vous suivez la documentation propre à Docker.
- Vous vous fiez au comportement actuel de Buildx et Compose.
- Vous voulez les noms de paquets Docker CE.
- Vous débuggez des problèmes en vous référant à la documentation upstream de Docker.
- Vous avez besoin d’une parité prévisible des versions Docker entre les distributions.
Mon biais : pour les machines de développement et les hôtes lourds en conteneurs, utilisez le dépôt APT officiel de Docker. Pour les machines gérées par Ubuntu de manière conservatrice, docker.io est acceptable.
Option 3 : Installer Docker avec Snap
Le snap Docker s’installe en une seule commande, mais la simplicité ne signifie pas toujours un comportement prévisible sur un serveur ou une machine de développement.
sudo snap install docker
Les paquets Snap ont leur propre modèle d’empaquetage, comportement de mise à jour, hypothèses de confinement et disposition du système de fichiers. Cela convient pour de nombreuses applications de bureau, mais Docker Engine est déjà un runtime de conteneurs au niveau système, donc la couche Snap supplémentaire peut surprendre. Si vous gérez d’autres logiciels avec Snap, la Fiche de référence du gestionnaire de paquets Snap explique les canaux, le confinement et le comportement de mise à jour en détail.
Quand Docker Snap est raisonnable
Docker Snap peut être raisonnable lorsque :
- Vous gérez intentionnellement les logiciels avec Snap.
- Vous utilisez Ubuntu Core ou un environnement fortement basé sur Snap.
- Vous voulez des mises à jour automatiques de style snap.
- Vous expérimentez et vous ne vous souciez pas de suivre les instructions APT upstream de Docker.
Pourquoi j’évite généralement Docker Snap
J’évite généralement le snap Docker pour le développement et l’utilisation serveur parce que :
- La plupart des documentations Docker supposent la disposition standard de Docker Engine.
- Les chemins de dépannage peuvent différer des installations APT.
- La gestion des services peut sembler moins transparente.
- Les mises à jour automatiques Snap peuvent être incommodes pour les logiciels d’infrastructure.
- Certains détails de montage bind, de sockets et d’intégration hôte peuvent vous surprendre.
Si Docker est central dans votre workflow, installez-le comme une infrastructure plutôt que comme une application de bureau occasionnelle — même quand une installation Snap semble tentante en surface.
Option 4 : Installer Docker depuis des paquets .deb manuels
L’installation manuelle via .deb est utile lorsque :
- La machine ne peut pas utiliser de dépôts APT externes.
- Vous construisez un processus d’installation hors ligne.
- Vous miroirez les paquets en interne.
- Vous avez besoin d’un contrôle des changements strict.
Le compromis est la maintenance, car vous devez télécharger et installer manuellement les nouveaux paquets à chaque mise à jour.
Une installation manuelle nécessite généralement ces paquets :
containerd.iodocker-cedocker-ce-clidocker-buildx-plugindocker-compose-plugin
Installez-les avec :
sudo dpkg -i ./containerd.io_*.deb \
./docker-ce_*.deb \
./docker-ce-cli_*.deb \
./docker-buildx-plugin_*.deb \
./docker-compose-plugin_*.deb
Ensuite, réparez les dépendances manquantes si nécessaire :
sudo apt --fix-broken install
Vérifiez :
sudo systemctl status docker
sudo docker run hello-world
Les installations manuelles .deb ne sont pas mon premier choix, mais elles restent valides pour les environnements contrôlés ou isolés où l’approbation explicite des paquets est plus importante que la commodité.
Option 5 : Utiliser le script pratique de Docker
Docker fournit un script pratique :
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Vous pouvez prévisualiser ce qu’il ferait :
sudo sh get-docker.sh --dry-run
Le script pratique est utile pour les machines de test jetables, les démos, les labs et les environnements éphémères, mais je ne l’utiliserais pas comme méthode d’installation principale pour les systèmes de production. Un script qui configure les dépôts et installe les paquets de manière non interactive est pratique, mais l’infrastructure longue durée mérite des étapes explicites et révisables — donc pour les hôtes de production, utilisez directement la méthode du dépôt APT.
Docker Desktop vs Docker Engine sur Ubuntu
Docker Desktop pour Linux est un produit différent de Docker Engine. Docker Engine est le runtime côté serveur et le workflow CLI que la plupart des utilisateurs de serveurs Linux attendent, tandis que Docker Desktop ajoute une interface graphique, des intégrations Desktop et une expérience produit plus proche de l’utilisation de Docker sur macOS et Windows.
Utilisez Docker Desktop lorsque :
- Vous voulez une expérience Docker graphique.
- Vous voulez les fonctionnalités Desktop.
- Vous alignez votre équipe sur Docker Desktop.
- Vous ne vous souciez pas de la couche supplémentaire.
Utilisez Docker Engine lorsque :
- Vous faites tourner un serveur.
- Vous voulez un runtime natif Linux simple.
- Vous préférez les services gérés par systemd.
- Vous construisez une infrastructure CI, DevOps ou auto-hébergée.
- Vous n’avez pas besoin de l’interface graphique.
Pour un public technique avancé de blogs techniques, Docker Engine est généralement l’option par défaut plus intéressante sur les serveurs Linux et les hôtes CI.
Post-installation : Exécuter Docker sans Sudo
Après l’installation, cela fonctionne :
sudo docker ps
Mais cela peut échouer :
docker ps
C’est parce que le démon Docker écoute sur un socket Unix appartenant à root. La correction courante est d’ajouter votre utilisateur au groupe docker.
Créez le groupe si nécessaire :
sudo groupadd docker
Ajoutez votre utilisateur :
sudo usermod -aG docker $USER
Appliquez l’appartenance au nouveau groupe :
newgrp docker
Ou déconnectez-vous et reconnectez-vous.
Testez :
docker run hello-world
Note de sécurité importante concernant le groupe Docker
Le groupe docker n’est pas un groupe de commodité inoffensif. Un utilisateur qui peut contrôler le démon Docker peut généralement obtenir un contrôle équivalent à root sur l’hôte, donc pour une machine de développement personnelle, c’est souvent acceptable, mais sur un serveur partagé, c’est une décision sérieuse de contrôle d’accès. Traitez l’appartenance au groupe docker comme un accès administrateur, et si cela vous semble trop large, envisagez plutôt Rootless Docker.
Rootless Docker sur Ubuntu
Rootless Docker exécute le démon Docker et les conteneurs en tant qu’utilisateur non-root. Cela n’est pas la même chose que d’ajouter votre utilisateur au groupe docker — avec le groupe docker, le démon s’exécute toujours en tant que root, tandis qu’en mode rootless, le démon lui-même s’exécute en tant que votre utilisateur.
Quand Rootless Docker est pertinent
Rootless Docker est utile lorsque :
- Vous voulez réduire le risque root au niveau du démon.
- Vous êtes sur une machine de développement partagée.
- Vous exécutez des conteneurs appartenant à l’utilisateur.
- Vous n’avez pas besoin de chaque fonctionnalité avancée de réseau et de stockage.
- Vous voulez une option par défaut plus sûre pour les charges de travail expérimentales.
Quand Rootless Docker peut être ennuyeux
Rootless Docker peut être moins pratique lorsque :
- Vous avez besoin de conteneurs privilégiés.
- Vous vous fiez à la liaison de ports bas sans configuration supplémentaire.
- Vous avez besoin de certains modèles de réseau hôte.
- Vous attendez un comportement identique à Docker rootful.
- Vous suivez des guides écrits pour des installations normales de Docker Engine.
Le mode rootless améliore la posture de sécurité, mais il n’est pas exempt de friction par rapport à une installation rootful standard.
Installer Rootless Docker
Installez les prérequis :
sudo apt update
sudo apt install uidmap
Si vous avez installé Docker depuis des paquets DEB ou APT, l’outil de configuration rootless devrait être disponible :
dockerd-rootless-setuptool.sh install
Si Docker rootful est déjà en cours d’exécution et que vous voulez seulement Rootless Docker, désactivez le démon système :
sudo systemctl disable --now docker.service docker.socket
Vous devrez peut-être également supprimer le socket rootful :
sudo rm -f /var/run/docker.sock
Après l’installation de Rootless Docker, l’outil de configuration imprime généralement des variables d’environnement à ajouter à votre profil de shell. Elles ressemblent généralement à ceci :
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
Votre UID peut différer. Vérifiez la sortie exacte de l’outil de configuration.
Activez le lingering si vous voulez que le service utilisateur s’exécute après la déconnexion :
sudo loginctl enable-linger $USER
Vérifiez le service utilisateur :
systemctl --user status docker
Exécutez un conteneur de test :
docker run hello-world
Docker Rootful vs Rootless Docker
| Sujet | Docker Rootful | Docker Rootless |
|---|---|---|
| Utilisateur du démon | root | utilisateur normal |
| Commodité de commande | élevée | moyenne |
| Compatibilité | la plus élevée | bonne, mais pas parfaite |
| Posture de sécurité | plus faible par défaut | meilleure par défaut |
| Conteneurs privilégiés | pris en charge | limité |
| Ports bas | simple | nécessite une configuration supplémentaire |
| Utilisation serveur | courante | possible, mais planifiez soigneusement |
| Station de travail de développeur | courante | bon pour les utilisateurs soucieux de la sécurité |
Ma recommandation pratique :
- Utilisez Docker rootful normal pour une machine de développement personnelle ou un serveur simple.
- Ajoutez uniquement des utilisateurs de confiance au groupe
docker. - Utilisez Rootless Docker lorsque l’isolation des utilisateurs est importante.
- Ne prétendez pas que le groupe
dockerest une frontière de sécurité.
Activer Docker au démarrage
Sur Ubuntu, Docker installé depuis des paquets normaux démarre généralement automatiquement, mais il vaut la peine de confirmer après une installation fraîche ou une migration.
Vérifiez :
systemctl is-enabled docker
systemctl is-enabled containerd
Activez manuellement si nécessaire :
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Démarrez maintenant :
sudo systemctl start docker
Désactivez le démarrage automatique :
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
Pour Rootless Docker, utilisez le service utilisateur :
systemctl --user enable docker
systemctl --user start docker
Et activez le lingering si nécessaire :
sudo loginctl enable-linger $USER
Installer ou vérifier Docker Compose
Avec le dépôt APT officiel de Docker, installez Compose en tant que plugin :
sudo apt update
sudo apt install docker-compose-plugin
Vérifiez :
docker compose version
Si vous avez installé le paquet d’Ubuntu, vous pouvez utiliser :
sudo apt install docker-compose-v2
Privilégiez :
docker compose up -d
Plutôt que l’ancien style :
docker-compose up -d
La commande docker-compose avec trait d’union appartient à l’ère ancienne de Compose autonome. De nombreux systèmes l’ont encore, mais la nouvelle documentation devrait utiliser docker compose.
Vérifier quel Docker vous avez installé
Lorsque vous héritez d’une machine ou débuggez une configuration cassée, ces commandes aident à identifier quel emballage Docker est réellement utilisé.
Vérifiez le binaire Docker :
which docker
Vérifiez la propriété du paquet :
dpkg -S "$(which docker)"
Listez les paquets liés à Docker :
dpkg -l | grep -E 'docker|containerd|runc'
Vérifiez la politique APT :
apt-cache policy docker-ce docker.io containerd.io docker-compose-plugin docker-compose-v2
Vérifiez Snap :
snap list | grep docker
Vérifiez l’état du service :
systemctl status docker
systemctl status containerd
Vérifiez les détails du serveur Docker :
docker info
Si docker info échoue sans sudo, vérifiez votre appartenance aux groupes :
groups
Migrer de docker.io Ubuntu vers Docker CE
Arrêtez Docker :
sudo systemctl stop docker
Supprimez les paquets Ubuntu :
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc containerd runc
Ajoutez le dépôt APT officiel de Docker en utilisant les étapes ci-dessus.
Installez Docker CE :
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Démarrez Docker :
sudo systemctl start docker
Vérifiez les conteneurs existants :
docker ps -a
docker images
docker volume ls
Normalement, la suppression des paquets ne supprime pas /var/lib/docker, donc vos images, conteneurs et volumes peuvent toujours exister. Cependant, faites une sauvegarde des données importantes d’abord.
Migrer de Docker Snap vers Docker CE
Inspectez d’abord ce qui existe :
snap list | grep docker
docker info
Arrêtez les charges de travail et sauvegardez les volumes importants ou les données montées en bind.
Supprimez le snap :
sudo snap remove docker
Installez ensuite Docker CE depuis le dépôt APT officiel.
Soyez prudent avec les emplacements des données. Les paquets Snap utilisent souvent des chemins et des règles de confinement différents. Ne supposez pas que les données de Docker Snap apparaîtront automatiquement sous le chemin standard /var/lib/docker après la migration.
Pour les services importants, exportez ou sauvegardez les données explicitement avant de changer de source de paquets.
Fixer une version de Docker avec APT
Pour les systèmes semblables à la production, vous pouvez vouloir des mises à jour contrôlées.
Listez les versions disponibles :
apt list --all-versions docker-ce
Installez une version spécifique :
VERSION_STRING="5:29.0.0-1~ubuntu.24.04~noble"
sudo apt install docker-ce=$VERSION_STRING \
docker-ce-cli=$VERSION_STRING \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Maintenez les paquets Docker (hold) :
sudo apt-mark hold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Levez le hold plus tard :
sudo apt-mark unhold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Faites cela lorsque vous avez besoin de fenêtres de changement prévisibles. Pour un ordinateur portable personnel, cela peut être inutile.
Notes sur le pare-feu et le réseau
Docker modifie les règles de filtrage de paquets pour faire fonctionner le réseau des conteneurs, ce qui est important si vous utilisez UFW, firewalld, nftables ou des règles de pare-feu personnalisées.
Points importants :
- Les ports Docker publiés peuvent contourner les attentes naïves d’UFW.
- Docker utilise l’intégration iptables.
- Les règles personnalisées doivent tenir compte des chaînes créées par Docker.
- Le durcissement du serveur doit être testé avec de véritables mappages de ports de conteneurs.
- Ne supposez pas que
ufw denyprotège un port publié par Docker.
Testez les ports exposés depuis une autre machine, pas seulement depuis localhost.
Exemple :
docker run --rm -p 8080:80 nginx
Ensuite, depuis un autre hôte :
curl http://server-ip:8080
Sur les serveurs, le réseau Docker fait partie de votre modèle de sécurité, ce n’est pas un détail d’implémentation que vous pouvez ignorer après l’installation.
Erreurs courantes et corrections
Permission refusée sur le socket Docker
Erreur :
permission denied while trying to connect to the Docker daemon socket
Options de correction :
Utilisez sudo :
sudo docker ps
Ou ajoutez votre utilisateur au groupe docker :
sudo usermod -aG docker $USER
newgrp docker
N’oubliez pas que le groupe docker est équivalent à root en pratique, donc traitez l’appartenance au groupe comme une décision d’accès privilégié.
Le démon Docker n’est pas en cours d’exécution
Vérifiez l’état :
sudo systemctl status docker
Démarrez-le :
sudo systemctl start docker
Vérifiez les journaux :
journalctl -u docker --no-pager -n 100
Paquets Docker en conflit
Si l’installation de Docker CE échoue à cause de conflits, supprimez les anciens paquets. Si APT lui-même est dans un état instable après l’ajout du dépôt Docker, travaillez à travers le Dépannage Ubuntu APT pour les paquets cassés et les erreurs GPG avant de réessayer.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
Ensuite, réessayez :
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Commande Compose non trouvée
Vérifiez Compose moderne :
docker compose version
Installez le plugin :
sudo apt install docker-compose-plugin
Si vous attendiez l’ancienne commande :
docker-compose version
Vous suivez peut-être une ancienne documentation. Préférez mettre à jour la commande vers docker compose.
Ancienne configuration Docker possédée par root
Si vous avez exécuté Docker avec sudo avant de configurer l’accès au groupe, votre configuration utilisateur peut être possédée par root.
Corrigez la propriété :
sudo chown "$USER":"$USER" "$HOME/.docker" -R
sudo chmod g+rwx "$HOME/.docker" -R
Ou supprimez la configuration si vous ne la besoin pas :
sudo rm -rf "$HOME/.docker"
Elle sera recréée.
Impossible de se connecter à Rootless Docker
Vérifiez l’environnement :
echo "$DOCKER_HOST"
Vérifiez le service utilisateur :
systemctl --user status docker
Définissez le chemin du socket si nécessaire :
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
Ajoutez-le à votre profil de shell uniquement après avoir confirmé qu’il est correct.
Désinstaller Docker Engine
Supprimez les paquets Docker CE :
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
Supprimez les données Docker uniquement si vous voulez vraiment supprimer les images, conteneurs et volumes :
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Supprimez les fichiers du dépôt Docker :
sudo rm -f /etc/apt/sources.list.d/docker.sources
sudo rm -f /etc/apt/keyrings/docker.asc
Actualisez APT :
sudo apt update
Pour Docker Snap :
sudo snap remove docker
Pour docker.io Ubuntu :
sudo apt purge docker.io docker-compose-v2
Chemin d’installation recommandé pour la plupart des utilisateurs Ubuntu
Pour la plupart des utilisateurs techniques d’Ubuntu, voici le chemin propre :
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
sudo apt update
sudo apt install ca-certificates curl
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
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
Décidez ensuite si vous voulez un accès au groupe pour la commodité ou Rootless Docker pour une isolation plus stricte :
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
Conseils d’opinion finale
L’installation de Docker sur Ubuntu est un choix opérationnel, pas seulement un choix de paquet. La méthode que vous choisissez affecte les mises à jour, les frontières de sécurité et à quel point votre hôte correspond à la documentation upstream de Docker.
Mes règles pratiques sont :
- Utilisez le dépôt APT officiel de Docker pour la plupart des machines de développement et DevOps.
- Utilisez
docker.iod’Ubuntu lorsque la cohérence du dépôt Ubuntu est plus importante que la fraîcheur upstream. - Évitez Docker Snap pour les workflows de conteneurs sérieux, sauf si vous voulez intentionnellement le comportement Snap.
- Évitez le script pratique pour les hôtes de production.
- Utilisez
docker composemoderne, pas l’anciendocker-compose. - Traitez le groupe
dockercomme un accès privilégié. - Envisagez Rootless Docker lorsque l’isolation des utilisateurs est importante.
- Fixez les versions sur les systèmes semblables à la production.
- Testez le comportement du pare-feu lors de la publication de ports sur les serveurs.
L’installation Docker la plus ennuyeuse est généralement la meilleure : dépôt APT officiel, keyring explicite, plugin Compose, service systemd, permissions comprises et aucune couche d’empaquetage mystérieuse au milieu. Une fois le moteur en place, les charges de travail multi-services — y compris les stacks LLM auto-hébergés — sont une étape naturelle suivante ; par exemple, voir Ollama dans Docker Compose pour exécuter des modèles locaux dans des conteneurs. Pour maintenir une stack Compose en cours d’exécution après les redémarrages sur un serveur, Exécuter Docker Compose comme un service Linux avec systemd passe en revue les fichiers unit et les habitudes opérationnelles.
Lire plus
- https://docs.docker.com/engine/install/ubuntu/ “Installer Docker Engine sur Ubuntu | Docs Docker”
- https://packages.ubuntu.com/noble/docker.io “Ubuntu - Détails du paquet docker.io dans noble”