Comment installer et configurer le moteur Docker-CE / Moby sur Fedora 32

Comment installer et configurer le moteur Docker-CE / Moby sur Fedora 32

Même si Red Hat s'est développé podman et buildah, Ses propres outils pour travailler avec des conteneurs, qui sont livrés avec des avantages importants comme une architecture sans démon, vous voudrez peut-être continuer à utiliser le logiciel Docker d'origine sur Fedora. Dans ce tutoriel, nous explorerons les options que nous avons sur la dernière version de la distribution pour le faire, et verrons comment appliquer les correctifs nécessaires pour que Docker fonctionne correctement.

Dans ce tutoriel, vous apprendrez:

  • Comment installer Moby-Enchin
  • Comment installer Docker-Ce
  • Comment appliquer les solutions de contournement nécessaires pour faire fonctionner correctement Docker sur Fedora 32


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 Fedora 32
Logiciel Aucun logiciel spécifique n'est nécessaire pour suivre ce tutoriel
Autre Permissions racinaires pour effectuer des tâches administratives
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

Moby-ingine vs docker-ce

Il existe deux façons d'obtenir Docker sur Fedora 32: nous pouvons installer le package «Docker» à partir des référentiels de distribution officiels, ou ajouter le docker-ce ceux et installez les packages nécessaires à partir de là. Si nous choisissons la première option, la moby-ingénie le package sera installé sur notre distribution au lieu de la réelle docker libérer. Si nous choisissons le deuxième, nous obtiendrons la dernière version de l'édition communautaire du «Official» moteur à moteur.

Quelle est la différence entre les deux? «Moby» est un projet open-source «en amont» créé par Docker afin de distribuer et de diviser sa base de code en plusieurs composants. Le logiciel que nous obtenons moby-ingénie directement à partir du référentiel officiel de Fedora est emballé par la distribution sur la base de ce projet Upsteam, tandis que docker-ce (et aussi docker-ee - Enterprise Edition) est le produit créé par le docker Projet sur la même base. Les deux sont libérés sous une licence open source et sont disponibles gratuitement.

Dans ce tutoriel, nous verrons comment effectuer l'installation de docker-ce ou moby-ingénie, Et nous verrons également comment appliquer les correctifs nécessaires pour que Docker fonctionne correctement sur la dernière version de Fedora.

Installation de Moby-Enchin à partir des référentiels officiels

Installation moby-ingénie C'est le moyen le plus simple et le plus rapide de travailler avec des conteneurs en utilisant l'architecture Docker Client-Server sur la distribution. Tout ce que nous avons à faire est d'utiliser DNF, le Fedora Package Manager et exécutez la commande suivante:

$ sudo dnf installer docker Dernier chèque d'expiration des métadonnées: 1:38:14 il y a le soleil 03 mai 2020 02:22:22 PM CEST. Les dépendances résolues. ==============================================. ============================= Pack ==============================================. =============== Installation: Moby-Engine x86_64 19.03.8-1.CE.gitafacb8b.FC32 Fedora 51 M Installation des dépendances: conteneur-Sélinux Noarch 2: 2.132.0-1.FC32 Mises à jour 48 K Containerd x86_64 1.3.3-1.FC32 MISE À JOUR 32 M LIBBSD X86_64 0.dix.0-2.FC32 Fedora 106 K Libnet x86_64 1.1.6-19.FC32 Fedora 64 K Runc x86_64 2: 1.0.0-144.dev.gite6555cc.FC32 Fedora 2.7 m Installation de dépendances faibles: CRI x86_64 3.13-5.FC32 Fedora 492 K Résumé des transactions ======================================================================================= ================================. Est-ce OK [O / N]: 


Comme vous pouvez le voir, même si nous avons spécifié docker comme package, le moby-ingénie version 19.03.8-1.CE.gitafacb8b.FC32 sera réellement installé, avec ses dépendances.

Installation de Docker-Ce

Docker Community Edition (CE) est la version «officielle» Docker, qui, comme nous l'avons déjà dit, est basée sur le moby-project. L'installation sur Fedora 32 nécessite plus d'étapes. Si vous avez précédemment installé la version de Docker disponible dans les référentiels Fedora (Moby-Engine), assurez-vous de le désinstaller en exécutant la commande suivante:

$ sudo dnf AutoreMove docker 

Si vous avez déjà construit des images ou créés de conteneurs ou de volumes, ne vous inquiétez pas: le sera conservé.

Une fois que nous sommes sûrs que les packages installés précédemment sont supprimés de notre système, nous pouvons ajouter le docker-ce Référentiel de nos sources de logiciels de distribution, nous pouvons donc rester à jour avec les futures versions. La première chose que nous devons faire est de télécharger le docker-ce.repo déposer:

$ curl -o https: // télécharger.docker.com / linux / fedora / docker-ce.repo 

Si nous ouvrons le fichier avec notre éditeur de texte préféré, nous pouvons voir que la section relative à docker-ge-stable est marqué comme activé:

[docker-cce-stable] name = docker ce stable - $ basearch basiseurl = https: // download.docker.com / linux / fedora / $ releasever / $ basearch / stable activé = 1 gpgcheck = 1 gpgkey = https: // download.docker.com / linux / fedora / gpg 

Lorsque DNF analyse le .repo fichier, le $ libéré La variable est étendue, comme son nom l'indique, à la version de version de distribution, dans ce cas 32. Depuis au moment de la rédaction, il n'y a pas de référentiel Docker-CE explicitement dédié à Fedora 32, nous devons remplacer cette variable par une valeur statique, 31, la version précédente de Fedora. Nous pouvons facilement effectuer le changement en utilisant le sed commande:

# Assurez-vous d'utiliser des devis uniques! $ sed -i's / $ releasever / 31 / g 'docker-c.repo 

Avec la commande ci-dessus, nous avons substitué chaque occurrence de $ libéré dans le fichier avec 31. Pour que la commande fonctionne correctement, le schéma de substitution doit être enfermé en citations uniques comme nous l'avons fait ci-dessus (ou le $ le caractère doit être échappé).

Comme vous pouvez le remarquer, seul le écurie La branche du référentiel est activée par défaut (activé = 1). Je vous suggère de le laisser de cette façon, sauf si vous avez une exigence spécifique.

Pour faire en sorte que DNF utilise le référentiel Docker-CE, nous devons déplacer le .repo fichier à la / etc / yum.se soustraire.d annuaire:

$ sudo mv docker-ge.repo / etc / yum.se soustraire.d/ 

À ce stade, nous pouvons émettre la commande suivante pour installer les packages Docker-Ce dont nous avons besoin:

$ sudo dnf installer docker-ce docker-cli contenerd.IO Docker CE Stable - x86_64 17 Ko / s | 8.9 kb 00:00 dépendances résolues. ==============================================. ==============================================. ===========================. ==============================================. ==============================================. =============== Installation: Containerd.io x86_64 1.2.13-3.1.FC31 Docker-Ce-stable 23 m Docker-CE x86_64 3:19.03.8-3.FC31 Docker-Ce-stable 23 m docker-ce-cli x86_64 1:19.03.8-3.FC31 Docker-CE-stable 39 M Installation des dépendances: conteneur-Sélinux Noarch 2: 2.132.0-1.FC32 Mises à jour 48 K Libcgroup x86_64 0.42.2-1.FC32 Fedora 68 K Résumé de la transaction ======================================================================================= ==============================================. ================================. Est-ce OK [O / N]: 

Confirmez l'installation pour continuer. Vous serez également invité à accepter la touche GPG du référentiel nouvellement installé.

Démarrer le démon docker

Peu importe si nous avons installé docker-ce du référentiel dédié ou du moby-ingénie, Une fois les packages installés, pour travailler avec des conteneurs, nous devons démarrer le docker démon, et éventuellement faire de sorte qu'il est automatiquement lancé au démarrage. Pour effectuer les deux opérations, nous pouvons utiliser le systemctl commande et exécuter:

$ sudo systemctl activer --now docker 

À ce stade, nous avons installé Docker-Ce ou Moby-Engine sur notre système, et le démon fonctionne. Il y a cependant quelques ajustements que nous devons effectuer pour que Docker fonctionne correctement sur notre distribution.

Activer la compatibilité vers l'arrière pour les CGROUPS

Depuis Fedora 31, la distribution parrainée par Red Hat est passée à Cgroup v2 (Groupes de contrôle) par défaut. CGroup est le mécanisme inclus dans le noyau Linux, utilisé pour organiser les processus hiérarchiquement et distribuer des ressources en conséquence. Docker ne prend pas encore en charge la version 2 de cgroups, donc nous devons le désactiver. Pour le faire, nous devons passer le systemd.Unified_cgroup_Hierarchy = 0 paramètre au noyau au démarrage. Avec les privilèges administratifs ouvrez le / etc / par défaut / grub déposer. Il devrait avoir un contenu similaire à ceci:

Grub_timeout = 5 grub_distributor = "$ (sed 's, release .* $ ,, g '/ etc / système système) "grub_default = enregistré grub_disable_submenu = true grub_terminal_output =" console "grub_cmdline_linux =" rhgb sile 

Dans le GRUB_CMDLINE_LINUX Ligne, nous avons juste besoin d'ajouter le paramètre que nous avons mentionné ci-dessus, afin qu'il ressemble à cette façon:

Grub_cmdline_linux = "rhgb sile systemd.Unified_cgroup_Hierarchy = 0 " 

Une fois terminé, enregistrez le fichier modifié et reconstruisez la configuration de Grub:

$ sudo grub2-mkconfig -o / boot / grub2 / grub.CFG 

Pour rendre les modifications efficaces, nous devons redémarrer la machine.



Correction des DNS ne fonctionnant pas à l'intérieur de Docker

Essayons maintenant d'exécuter un conteneur très simple en fonction de l'officiel bustebox image. Nous l'utilisons pour exécuter un très simple ping-ping commander www.Google.com. C'est le résultat:

sudo docker run --rm -it busybox ping -c 3 www.Google.com ping: mauvaise adresse 'www.Google.com ' 

Comme vous pouvez le voir, une erreur est générée. Le ping-ping La commande se plaint de www.Google.com étant une mauvaise adresse, mais cela se produit en fait parce que la résolution DNS ne fonctionne pas à l'intérieur du conteneur. Pourquoi cela se produit? Lorsque Docker s'exécute, il doit effectuer des ajustements de pare-feu et utiliser la mascarade IP. Ce comportement est bloqué par Firewalld, le gestionnaire de pare-feu par défaut installé sur Fedora. La façon la plus simple de résoudre le problème est d'ajouter explicitement docker0 interface au de confiance zone de pare-feu. Nous pouvons le faire via le pare-feu-CMD utilitaire:

$ sudo Firewall-Cmd --permanent --zone = Trusted --Add-Interface = Docker0 && sudo Firewall-Cmd - Reload 

À ce stade, si nous réessayons le ping-ping Commande via le conteneur basé sur Busybox, il devrait fonctionner correctement:

$ sudo docker run --rm -it busybox ping -c 3 www.Google.com ping www.Google.com (216.58.198.36): 56 octets de données 64 octets de 216.58.198.36: seq = 0 ttl = 51 temps = 31.559 ms 64 octets de 216.58.198.36: SEQ = 1 TTL = 51 TEMPS = 30.417 ms 64 octets de 216.58.198.36: seq = 2 ttl = 51 temps = 30.154 ms --- www.Google.Statistiques de com ping --- 3 paquets transmis, 3 paquets reçus, 0% de paquet Perte aller-retour min / avg / max = 30.154/30.710/31.559 ms 

Conclusions

Dans ce tutoriel, nous avons appris la différence entre moby-ingénie et docker-ce Et nous avons appris à les installer sur Fedora 32. Nous avons également vu comment appliquer les deux correctifs nécessaires pour exécuter correctement Docker sur la distribution. Après avoir lu cet article, vous devriez espérer avoir une configuration de travail.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Installez Docker sur Almalinux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 22.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Masterring Bash Script Loops
  • Comment installer Kubernetes sur toutes les distros Linux
  • Ubuntu 20.04 Guide
  • Introduction aux moteurs de stockage MySQL