Comment installer docker ce sur rhel 8 / centos 8

Comment installer docker ce sur rhel 8 / centos 8

La dernière version du Rhel 8 / Centos 8. Red Hat a construit ses propres outils, buildah et podman, qui visent à être compatibles avec les images Docker existantes et à travailler sans compter sur un démon, permettant la création de conteneurs comme utilisateurs normaux, sans avoir besoin d'autorisations spéciales (avec certaines limitations: E.g. Au moment de l'écriture, il n'est toujours pas possible de cartographier les ports hôtes vers le conteneur sans privilèges).

Cependant, certains outils spécifiques sont encore manquants: un équivalent de composer docker, Par exemple, n'existe pas encore. Dans ce tutoriel, nous verrons comment installer et exécuter le Docker CE d'origine sur RHEL8 en utilisant le référentiel Docker officiel pour CentOS7.

Dans ce tutoriel, vous apprendrez:

  • Comment activer le référentiel Docker-Ce sur RHEL 8 / Centos 8
  • Comment installer docker et docker-compose sur rhel 8 / centos 8


Docker installé sur rhel 8 / centos 8

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système RHEL 8 / CENTOS 8
Logiciel Docker Version 18.09.2
Autre Permission d'exécuter la commande avec les privilèges racine.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Qu'est-ce que Docker?

Docker est un projet open source qui permet la création et la distribution des applications à l'intérieur conteneurs, qui sont des environnements standardisés qui peuvent être facilement reproduits, indépendamment du système hôte. Alors que dans Red Hat Enterprise Linux 7 Docker a été officiellement pris en charge, sur la nouvelle version de ce système d'exploitation open source, il a été remplacé par une série d'autres outils développés par Red Hat lui-même: buildah et podman.

Par l'utilisation d'un référentiel externe, cependant, il est toujours possible d'installer Docker CE (Community Edition). Dans ce tutoriel, nous verrons comment installer ce référentiel; Remarquez cependant qu'il était à l'origine destiné à Centos 7 (un clone rhel), et la version communautaire de Docker n'a pas de support officiel pour Red Hat Enterprise Linux. Pour cette raison, des problèmes existent - nous en discutons ci-dessous.

Ajout du référentiel externe

Étant donné que Docker n'est pas disponible sur RHEL 8 / CentOS 8, nous devons ajouter un référentiel externe pour obtenir le logiciel. Dans ce cas, nous utiliserons le référentiel officiel de Docker ce Centos: c'est, au moment de la rédaction, la seule façon d'installer Docker CE sur RHEL 8 / CENTOS 8.



Le DNF Config-Manager Utilitaire nous permet, entre autres, activer ou désactiver facilement un référentiel dans notre distribution. Par défaut, seul le Appstream et caves Les référentiels sont activés sur RHEL8; Nous devons ajouter et activer également le docker-ce repo. Tout ce que nous devons faire pour accomplir cette tâche, c'est exécuter la commande suivante:

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

Nous pouvons vérifier que le référentiel a été activé en examinant la sortie de la commande suivante:

$ sudo dnf repolist -v

La commande ci-dessus renverra des informations détaillées sur tous les référentiels activés. C'est ce que vous devriez voir à ce stade:

Repo-ID: Docker-Ce-stable Repo-Name: Docker CE Stable - X86_64 Repo-Révision: 1549905809 Repo-Updated: lun 11 février 2019 06:23:29 PM CET Repo-Pkgs: 30 Repo-size: 618 M Repo -baseur: https: // télécharger.docker.com / Linux / Centos / 7 / x86_64 / Repo-expire stable: 172 800 secondes (s) (Last: Lun 18 février 2019 10:23:54 AM CET) Repo-FileName: / etc / yum.se soustraire.d / docker-ce.Repo Repo-ID: RHEL-8-FOR-X86_64-APPSTREAM-RPMS Repo-Name: Red Hat Enterprise Linux 8 pour x86_64 - Appstream bêta (RPMS) Repo-révision: 1542158694 Repo-Updated: Mer 14 novembre 2018 02:24: 54 AM CET Repo-PKGS: 4 594 Repo-Size: 4.9 G Repo-Baseurl: https: // cdn.chapeau rouge.com / contenu / bêta / rhel8 / 8 / x86_64 / appstream / OS Repo-expire: 86 400 secondes (s) (Last: Lun 18 février 2019 10:23:55 AM CET) Repo-Filename: / etc / Yum.se soustraire.d / redhat.Repo Repo-ID: RHEL-8-FOR-X86_64-BaseOS-RPMS Repo-Name: Red Hat Enterprise Linux 8 pour x86_64 - Baseos Beta (RPMS) Repo-révision: 1542158719 Repo-mise à jour: mercredi 14 nov 2018 02:25: 19 AM CET Repo-PKGS: 1686 Repo-Size: 925 M Repo-Baseur: https: // cdn.chapeau rouge.com / contenu / bêta / rhel8 / 8 / x86_64 / baseos / OS Repo-Expire: 86 400 seconde (s) (Last: Lun 18 février 2019 10:23:56 AM CET) Repo-Filename: / etc / yum.se soustraire.d / redhat.Répu Packages totaux: 6,310 

Installation de Docker-Ce

Le docker-ge-stable Le référentiel est désormais activé sur notre système. Le référentiel contient plusieurs versions du docker-ce Package, pour les afficher tous, nous pouvons courir:

$ dnf liste docker-CE --showDuplicats | Trier -r docker-ce.x86_64 3:19.03.2-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:19.03.1-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:19.03.0-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.9-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.8-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.7-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.6-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.5-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.4-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.3-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.2-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.1-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 3:18.09.0-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 18.06.3.CE-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 18.06.2.CE-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 18.06.1.CE-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 18.06.0.CE-3.EL7 Docker-Ce-stable Docker-Ce.x86_64 18.03.1.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 18.03.0.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.12.1.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.12.0.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.09.1.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.09.0.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.06.2.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.06.1.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.06.0.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.03.3.CE-1.EL7 Docker-Ce-stable Docker-Ce.x86_64 17.03.2.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.03.1.CE-1.EL7.Centos Docker-Ce-stable docker-ce.x86_64 17.03.0.CE-1.EL7.centos docker-ge-stable 

Quelle version installer? Eh bien, Red Hat semble avoir bloqué en quelque sorte l'installation de conteneur.Io > 1.2.0-3.EL7, qui est une dépendance de docker-ce. À cause de cela, simplement exécuter le sudo dnf installer docker-c Commande, ne fonctionnera pas. Comme nous le verrons dans une minute, il est toujours possible de stimuler ce problème; une fois docker-ce est installé, cependant, un autre problème devient évident: tant que pare-feu, Le gestionnaire de pare-feu système est activé, Résolution DNS Les conteneurs Docker à l'intérieur ne fonctionnent pas.

C'est bien sûr un problème critique. Cependant, si vous souhaitez toujours procéder à l'installation, voici les méthodes possibles qui peuvent être utilisées pour éviter les problèmes de dépendances:

  • Installer une version spécifique de docker-ce qui nécessite une version installable du conteneur.Io emballer;
  • Forcer l'installation à fournir --négard option
  • Installez le dernier disponible conteneur.Io RPM manuellement;

Installez une version spécifique de Docker-CE

Au moment de l'écriture des versions de docker-ce qui sont installés sans problème sont:

  • Docker-CE-3: 18.09.1-3.EL7
  • Docker-CE-18.06.3.CE-3.EL7;
  • Docker-CE-17.12.1.CE-1.EL7.centos

Pour installer une version spécifique, tout ce que nous avons à faire est de fournir le nom du package entièrement qualifié, par exemple:

$ sudo dnf installer docker-ce-3: 18.09.1-3.EL7

Forcer l'installation de Docker-Ce avec l'option-Nobest

Normalement, lors de l'installation d'un package, le meilleur candidat disponible est sélectionné dans un référentiel. Dans ce cas, par exemple, l'installation de la dernière version de docker-ce est tenté (et échoue). En utilisant le --négard Option, nous pouvons modifier ce comportement afin que la première version de docker-ce avec des dépendances satisfaisables est sélectionnée comme «secours», dans ce cas 3:18.09.1-3.EL7.

$ sudo dnf install - Nobest Docker-CE dépendances résolues. Problème: package Docker-CE-3: 19.03.2-3.EL7.x86_64 nécessite un conteneur.io> = 1.2.2-3, mais aucun des fournisseurs ne peut être installé - ne peut pas installer le meilleur candidat pour le travail - Package Containerd.io-1.2.2-3.3.EL7.x86_64 est exclu - Package Containerd.io-1.2.2-3.EL7.x86_64 est exclu - Package Containerd.io-1.2.4-3.1.EL7.x86_64 est exclu - Package Containerd.io-1.2.5-3.1.EL7.x86_64 est exclu - Package Containerd.io-1.2.6-3.3.EL7.x86_64 est exclu =========================================================================== ==============================================. ==============================================. ==== Package Arch Version Repository Size ======================================================== ==============================================. ==============================================. ========== Installation: Docker-CE x86_64 3:18.09.1-3.EL7 Docker-Ce-stable 19 m Installation de dépendances: contenerd.io x86_64 1.2.0-3.EL7 Docker-Ce-stable 22 m Docker-Ce-Cli x86_64 1:19.03.2-3.El7 Docker-Ce-stable 39 M Container-Selinux Noarch 2: 2.94-1.git1e99f1d.Module + EL8.0.0 + 4017 + BBBA319F RHEL-8-FOR-X86_64-APPSTREAM-RPMS 43 K TAR X86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BaseOS-RPMS 838 K Libcgroup x86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BaseOS-RPMS 70 K Python3-Policycoreutils Noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-baseoS-RPMS 2.2 m Python3-libsemanage x86_64 2.8-5.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 127 K Python3-Setools x86_64 4.2.0-2.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 598 K CHECKPOLICY X86_64 2.8-2.EL8 RHEL-8-FOR-X86_64-BaseOS-RPMS 338 K Python3-Audit x86_64 3.0-0.dix.20180831git0047a6c.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 85 K Policycoréutils-Python-Utils Noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BaseOS-RPMS 228 K Packages de saut avec des dépendances brisées: Docker-CE x86_64 3:19.03.2-3.El7 Docker-Ce-stable 24 m Résumé des transactions ====================================================== ==============================================. ==============================================. =========== Installer 12 packages Skip 1 Package Total Téléchargement Taille: 85 m Taille installée: 351 m est ce OK [O / N]:

Installez le dernier conteneur disponible.Package IO manuellement

Si nous avons strictement besoin d'installer la dernière version de docker-ce, Nous pouvons installer la version requise de conteneur.Io manuellement, en fonctionnant:

$ sudo dnf installer https: // download.docker.com / linux / centos / 7 / x86_64 / stable / packages / contenerd.io-1.2.6-3.3.EL7.x86_64.RPM

Une fois le package installé, nous pouvons simplement installer le dernier docker-ce:

$ sudo dnf installer les dépendances docker-ce résolues. ==============================================. ==============================================. ==============================================. = Package Arch Version Repository Size =========================================================== ==============================================. ==============================================. ======= Installation: Docker-CE x86_64 3:19.03.2-3.EL7 Docker-Ce-stable 24 M Installation des dépendances: Docker-Ce-Cli x86_64 1:19.03.2-3.el7 docker-ce-stable 39 m Tar x86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BaseOS-RPMS 838 K Libcgroup x86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BaseOS-RPMS 70 K Résumé de la transaction ================================================ ==============================================. ==============================================. ================= Installer 4 packages Téléchargement total Taille: 65 m Taille installée: 275 m est-ce que c'est OK [O / N]: 

Cette option est moins pratique puisque conteneur.Io le package n'est pas installé comme une dépendance de docker-ce, Par conséquent, il ne sera pas supprimé automatiquement lorsque ce dernier sera désinstallé du système.

Quelle que soit la méthode que nous utilisons pour installer docker-ce, comme dit précédemment, afin de faire Résolution DNS Travaillez à l'intérieur des conteneurs Docker, nous devons désactiver Firewalld (un redémarrage du système peut également être nécessaire):

$ sudo systemctl désactiver le pare-feu


Commencez et activez le démon docker

Une fois docker-ce est installé, nous devons démarrer et activer le démon docker, afin qu'il soit également lancé automatiquement au démarrage. La commande que nous devons exécuter est la suivante:

$ sudo systemctl activer --now docker

À ce stade, nous pouvons confirmer que le démon est actif en fonctionnant:

$ SystemCTL IS-actif docker actif 

De même, nous pouvons vérifier qu'il est activé au démarrage, en exécutant:

$ SystemCTl Activé Docker IST 

Installation de Docker-Compose

Docker Compose est un package très utile qui nous permet de gérer des applications multi-container, comme par exemple celles basées sur la pile de lampe, où chaque partie de l'environnement (PHP, Apache, Mariadb) est fournie par un conteneur dédié (si vous êtes intéressé Dans le sujet, jetez un œil à notre tutoriel sur la création d'une pile de lampe basée sur Docker). Le package n'est pas disponible sur RHEL8, ni un équivalent n'existe à utiliser avec les outils RHEL. Il est cependant possible de l'installer de nombreuses façons: continuez à lire et décidez ce qui vous convient le mieux.

Installation mondiale

La façon dont nous devons installer composer docker varie selon que nous voulons l'installer à l'échelle mondiale ou simplement pour un seul utilisateur. Au moment de la rédaction, la seule façon de l'installer à l'échelle mondiale est de télécharger le binaire à partir de la page GitHub du projet:

$ curl -l "https: // github.com / docker / compose / releases / download / 1.23.2 / docker-compose - $ (uname -s) - $ (uname -m) "-o docker-compose

Une fois le binaire téléchargé, nous le déplacons dans / usr / local / bac Et nous le faisons exécutable:

$ sudo mv docker-compose / usr / local / bin && sudo chmod + x / usr / local / bin / docker-compose

Le / usr / local La hiérarchie n'est pas choisie au hasard. Cette structure de répertoire est conçue pour être utilisée pour les fichiers installés par l'administrateur local manuellement (pour le logiciel compilé à partir de la source, par exemple), afin d'assurer la séparation du logiciel installé avec le gestionnaire de package système.

Bien qu'il soit possible pour un utilisateur normal d'exécuter des commandes liées à Docker s'il fait partie du docker Groupe (le groupe est automatiquement créé lorsque nous installons Docker-CE), par défaut, ils doivent être exécutés avec des privilèges racine pour des raisons de sécurité. Quand nous devons faire ce dernier, puisque le / usr / local / bac Le répertoire n'est pas dans les utilisateurs racines CHEMIN, Nous devons soit appeler le binaire spécifiant son emplacement, soit ajouter / usr / local / bac au CHEMIN lui-même. La première option est celle que je recommande dans ce cas.

Installation par utilisateur

Si notre utilisateur fait partie du docker groupe, et donc il est autorisé à exécuter les commandes Docker, et depuis composer docker est disponible en tant que package Python, nous pouvons également l'installer en utilisant pépin, le gestionnaire de packages Python. Tout d'abord, assurez-vous que Pip lui-même est installé:

$ sudo dnf installer python3-pip

Pour obtenir Docker-Compose, nous dirigeons:

$ pip3.6 Installer Docker-Compose - User


Veuillez noter que même si ce serait possible d'exécuter PIP en tant que racine pour installer un package à l'échelle mondiale, cela n'est pas recommandé et très découragé.

Tester Docker

Nous avons installé Docker et Docker-Compose, maintenant pour vérifier que tout fonctionne comme prévu, nous pouvons essayer de créer une image et d'exécuter un conteneur: dans ce cas, nous utiliserons le fonctionnaire httpd un. Tout ce que nous avons à faire est de lancer la commande suivante:

sudo docker run --rm --name = linuxconfig-test -p 80:80 httpd

Depuis le httpd L'image n'existe pas localement, il sera automatiquement récupéré et construit. Enfin, un conteneur basé sur celui-ci sera lancé au premier plan (il sera automatiquement supprimé lors de l'arrêt). Nous devrions pouvoir voir le Ça marche! Message lorsque nous atteignons notre machine IP via le navigateur.

Conclusions

Red Hat Enterprise Linux 8 ne prend pas en charge Docker: sur cette distribution, il a été remplacé par les propres outils de Red Hat comme buildah et podman, qui sont compatibles avec Docker mais n'ont pas besoin d'une architecture serveur / client pour s'exécuter. L'utilisation d'outils natifs, dans la mesure du possible, est toujours la voie recommandée, mais pour une raison ou une autre, vous pouvez toujours installer le Docker d'origine. Dans ce tutoriel, nous avons vu comment il est possible d'installer Docker CE sur RHEL8, en utilisant le référentiel officiel de Docker pour CentOS7, qui est un clone à 100% compatible.

Ce n'est pas une solution idéale, et comme nous l'avons vu, pour le moment, certaines solutions de contournement sont nécessaires pour faire fonctionner Docker sur RHEL8. Si de nouveaux problèmes surviennent, ou de meilleures solutions aux problèmes mentionnés ci-dessus sont trouvés, cet article sera mis à jour en conséquence. Restez à l'écoute.

Tutoriels Linux connexes:

  • Comment créer une pile de lampe basée sur Docker à l'aide de Docker sur…
  • Choses à installer sur Ubuntu 20.04
  • Installez Docker sur Almalinux
  • Comment se connecter à Docker Container via SSH
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Comment installer Kubernetes sur toutes les distros Linux
  • Comment installer Debian sur un conteneur Luks existant
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Comment installer et configurer le moteur Docker-CE / Moby sur Fedora…
  • Masterring Bash Script Loops