⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Installer Docker Engine sur Ubuntu

Pour commencer avec Docker Engine sur Ubuntu, assurez-vous de répondre aux prérequis, puis suivez les étapes d'installation.

Prérequis

Limitations de pare-feu

Warning

Avant 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 et iptables-legacy. Les règles de pare-feu créées avec nft 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 avec iptables ou ip6tables, et que vous les ajoutez à la chaîne DOCKER-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 d'Ubuntu :

  • Ubuntu Oracular 24.10
  • Ubuntu Noble 24.04 (LTS)
  • Ubuntu Jammy 22.04 (LTS)

Docker Engine pour Ubuntu est compatible avec les architectures x86_64 (ou amd64), armhf, arm64, s390x et ppc64le (ppc64el).

Note

L'installation sur les distributions dérivées d'Ubuntu, telles que Linux Mint, n'est pas officiellement supportée (bien qu'elle puisse fonctionner).

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-compose-v2
  • 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 docker-compose-v2 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 :

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.

  1. 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/ubuntu/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/ubuntu \
      $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
  2. 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~ubuntu.24.04~noble
    5:28.1.0-1~ubuntu.24.04~noble
    ...
    

    Sélectionnez la version désirée et installez :

    $ VERSION_STRING=5:28.2.2-1~ubuntu.24.04~noble
    $ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
    
  3. 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.

Tip

Vous 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 utiliser sudo 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.

  1. Allez à https://download.docker.com/linux/ubuntu/dists/.

  2. Sélectionnez votre version d'Ubuntu dans la liste.

  3. Allez à pool/stable/ et sélectionnez l'architecture applicable (amd64, armhf, arm64 ou s390x).

  4. 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
  5. 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.

  6. Vérifiez que l'installation est réussie en exécutant l'image hello-world :

    $ sudo service docker start
    $ 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.

Tip

Vous 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 utiliser sudo 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 ou sudo 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.
Tip

Pré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 ou sudo 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 without root 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

  1. 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
    
  2. 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
    
  3. 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