Installer Docker sur Ubuntu : APT, Snap, Rootless — Guide complet 2026

Choisissez le bon chemin d'installation de Docker sur Ubuntu.

Sommaire

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.io provenant des dépôts Ubuntu
  • docker-ce provenant du dépôt APT officiel de Docker
  • Docker via Snap
  • Docker Desktop
  • les paquets .deb téléchargés manuellement
  • le script d’installation pratique de Docker (convenience script)
  • Docker sans privilèges root (Rootless Docker)

docker workplace

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.io
  • docker-ce
  • docker-ce-cli
  • docker-buildx-plugin
  • docker-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 docker est 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 deny protè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.io d’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 compose moderne, pas l’ancien docker-compose.
  • Traitez le groupe docker comme 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

S'abonner

Recevez de nouveaux articles sur les systèmes, l'infrastructure et l'ingénierie IA.