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

Installer Docker Engine sur RHEL

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

Prérequis

Exigences du système d'exploitation

Pour installer Docker Engine, vous avez besoin d'une version maintenue de l'une des versions RHEL suivantes :

  • RHEL 9 (s390x non supporté)
  • RHEL 8 (s390x non supporté)

Docker peut être installé sur RHEL sur des systèmes x86_64, aarch64 et s390x.

Désinstaller les anciennes versions

Les anciennes versions de Docker étaient appelées docker ou docker-engine. Désinstallez toutes ces anciennes versions ainsi que les dépendances associées. Conservez également le contenu de /var/lib/docker/, incluant les images, conteneurs, volumes et réseaux.

$ sudo dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

Si dnf signale qu'aucun de ces paquets n'est installé, c'est acceptable.

Le contenu de /var/lib/docker/, incluant les images, conteneurs, volumes et réseaux, est conservé. Le paquet Docker Engine est maintenant appelé docker-ce.

Méthodes d'installation

Vous pouvez installer Docker Engine de différentes manières, selon vos besoins :

  • Vous pouvez configurer les dépôts de Docker et installer depuis ceux-ci, pour faciliter les tâches d'installation et de mise à niveau. C'est l'approche recommandée.

  • Vous pouvez télécharger le paquet RPM, l'installer manuellement, et gérer les mises à niveau complètement manuellement. C'est utile dans des situations telles que l'installation de Docker sur des systèmes isolés sans accès à internet.

  • Dans les environnements de test et développement, vous pouvez utiliser des scripts de commodité automatisés pour installer Docker.

Installer en utilisant le dépôt rpm

Avant d'installer Docker Engine pour la première fois sur une nouvelle machine hôte, vous devez configurer le dépôt Docker. Ensuite, vous pouvez installer et mettre à jour Docker depuis le dépôt.

Configurer le dépôt

  1. Installez le paquet dnf-plugins-core :

    $ sudo dnf install -y dnf-plugins-core
    
  2. Ajoutez le dépôt Docker :

    $ sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
    

Installer Docker Engine

  1. Installez Docker Engine, containerd et Docker Compose :

    Pour installer la dernière version, exécutez :

    $ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    Si on vous demande d'accepter la clé GPG, vérifiez que l'empreinte correspond à 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35, et si c'est le cas, acceptez-la.

    Cette commande installe Docker, mais ne démarre pas Docker. Elle crée aussi un groupe docker, cependant, elle n'ajoute aucun utilisateur au groupe par défaut.

    Pour installer une version spécifique, commencez par lister les versions disponibles dans le dépôt :

    $ dnf list docker-ce --showduplicates | sort -r
    
    docker-ce.x86_64    3:28.2.2-1.el9    docker-ce-stable
    docker-ce.x86_64    3:28.1.0-1.el9    docker-ce-stable
    <...>
    

    La liste retournée dépend des dépôts activés, et est spécifique à votre version de RHEL (indiquée par le suffixe .el9 dans cet exemple).

    Installez une version spécifique par son nom de paquet complet, qui est le nom du paquet (docker-ce) plus la chaîne de version (2ème colonne), séparés par un trait d'union (-). Par exemple, docker-ce-3:28.2.2-1.el9.

    Remplacez <VERSION_STRING> par la version désirée puis exécutez la commande suivante pour installer :

    $ sudo dnf install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
    

    Cette commande installe Docker, mais ne démarre pas Docker. Elle crée aussi un groupe docker, cependant, elle n'ajoute aucun utilisateur au groupe par défaut.

  2. Démarrez Docker Engine.

    $ sudo systemctl enable --now docker
    

    Ceci configure le service systemd Docker pour démarrer automatiquement quand vous démarrez votre système. Si vous ne voulez pas que Docker démarre automatiquement, utilisez sudo systemctl start docker à la place.

  3. Vérifiez que l'installation de Docker Engine 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 les 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 de Docker pour installer Docker Engine, vous pouvez télécharger le fichier .rpm 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/rhel/ et choisissez votre version de RHEL. Puis naviguez vers x86_64/stable/Packages/ et téléchargez le fichier .rpm pour la version Docker que vous voulez installer.

  2. Installez Docker Engine, en changeant le chemin suivant vers le chemin où vous avez téléchargé le paquet Docker.

    $ sudo dnf install /path/to/package.rpm
    

    Docker est installé mais pas démarré. Le groupe docker est créé, mais aucun utilisateur n'est ajouté au groupe.

  3. Démarrez Docker Engine.

    $ sudo systemctl enable --now docker
    

    Ceci configure le service systemd Docker pour démarrer automatiquement quand vous démarrez votre système. Si vous ne voulez pas que Docker démarre automatiquement, utilisez sudo systemctl start docker à la place.

  4. Vérifiez que l'installation de Docker Engine 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, téléchargez les fichiers de paquet plus récents et répétez la procédure d'installation, en utilisant dnf upgrade au lieu de dnf install, et pointez 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 dnf remove 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
    

Vous devez supprimer manuellement tous les fichiers de configuration modifiés.

Prochaines étapes