So installieren und konfigurieren Sie Docker-CE/Moby Engine auf Fedora 32

So installieren und konfigurieren Sie Docker-CE/Moby Engine auf Fedora 32

Auch wenn sich Red Hat entwickelt hat Podman Und Buildah, Seine eigenen Werkzeuge für die Arbeit mit Containern, die mit einigen wichtigen Vorteilen wie einer dämonlosen Architektur ausgestattet sind. Möglicherweise möchten Sie die ursprüngliche Docker -Software auf Fedora weiterhin verwenden. In diesem Tutorial untersuchen wir die Optionen, die wir für die neueste Veröffentlichung der Verteilung dazu haben, und sehen, wie die erforderlichen Korrekturen für Docker angewendet werden können.

In diesem Tutorial lernen Sie:

  • So installieren Sie Moby-Engine
  • So installieren Sie Docker-CE
  • So wenden Sie die Problemumgehungen an, die erforderlich sind, damit Docker auf Fedora 32 korrekt laufen kann


Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Fedora 32
Software Es ist keine spezifische Software erforderlich, um diesem Tutorial zu folgen
Andere Root -Berechtigungen zur Ausführung von Verwaltungsaufgaben
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Moby-Engine gegen Docker-CE

Es gibt zwei Möglichkeiten, wie wir Docker auf Fedora 32 erhalten können: Wir können das „Docker“ -Paket aus den offiziellen Vertriebsrepositories installieren oder das hinzufügen Docker-CE Einen und installieren Sie die benötigten Pakete von dort aus. Wenn wir die erste Option auswählen, die Moby-Engine Das Paket wird in unserer Verteilung anstelle des tatsächlichen Installation installiert Docker freigeben. Wenn wir den zweiten wählen, erhalten wir die neueste Veröffentlichung der Community -Ausgabe des „Beamten“ Docker-Engine.

Was ist der Unterschied zwischen den beiden? "Moby" ist ein von Docker erstellter Open-Source-Projekt "Upstream". Die Software, die wir installieren Moby-Engine Direkt aus dem offiziellen Fedora -Repository wird durch die Verteilung auf der Basis dieses Upsteam -Projekts verpackt Docker-CE (und auch Docker-ee - Enterprise Edition) ist das von der erstellte Produkt Docker Projekt auf derselben Basis. Beide werden unter einer Open -Source -Lizenz veröffentlicht und sind frei verfügbar.

In diesem Tutorial werden wir sehen, wie die Installation von durchgeführt wird Docker-CE oder Moby-Engine, Wir werden auch sehen, wie die Korrekturen, die erforderlich sind, um Docker zu sorgen.

Installation von Moby-Engine aus den offiziellen Repositories

Installation Moby-Engine Dies ist der einfachste und schnellste Weg, um mit Containern mit der Docker Client-Server-Architektur auf der Verteilung mit Containern zu arbeiten. Alles was wir tun müssen, ist zu verwenden DNF, Der Fedora -Paketmanager und den folgenden Befehl ausführen:

$ sudo dnf Installation Docker Last Metadata Ablaufprüfung: 1:38:14 vor Sonne 03. Mai 2020 02:22:22 PM CEST. Abhängigkeiten gelöst. ====================================================== ======================ieben ====================================================== ================ Installation: Moby-Engine x86_64 19.03.8-1.ce.Gitafacb8b.FC32 Fedora 51 m Installation von Abhängigkeiten: Container-Selinux Noarch 2: 2.132.0-1.FC32 Updates 48 K Container x86_64 1.3.3-1.FC32 Updates 32 m libbsd x86_64 0.10.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 schwacher Abhängigkeiten: Criu x86_64 3.13-5.fc32 fedora 492 k Transaction Summary ============================================ =================================== installieren Ist das in Ordnung [y/n]: 


Wie Sie sehen können, auch wenn wir angegeben haben Docker als Paket, die Moby-Engine Ausführung 19.03.8-1.ce.Gitafacb8b.FC32 wird tatsächlich zusammen mit seinen Abhängigkeiten installiert.

Installieren von Docker-CE

Docker Community Edition (CE) ist die „offizielle“ Docker-Version, die, wie wir bereits sagten, auf dem Moby-Project basiert. Die Installation auf Fedora 32 erfordert mehr Schritte. Wenn Sie zuvor die Version von Docker installiert haben, die in den Fedora-Repositories (Moby-Engine) verfügbar ist, können Sie sie bitte deinstallieren, indem Sie den folgenden Befehl ausführen:

$ sudo dnf Autoremove Docker 

Wenn Sie zuvor einige Bilder erstellt oder Container oder Volumina erstellt haben, machen Sie sich keine Sorgen: Der Willen erhalten erhalten.

Sobald wir sicher sind, dass zuvor installierte Pakete aus unserem System entfernt wurden, können wir die hinzufügen Docker-CE Repository zu unseren Vertriebssoftwarequellen, damit wir mit zukünftigen Veröffentlichungen auf dem Laufenden bleiben können. Das erste, was wir tun müssen, ist, die herunterzuladen Docker-CE.Repo Datei:

$ curl -o https: // herunterladen.Docker.com/linux/fedora/docker-ce.Repo 

Wenn wir die Datei mit unserem bevorzugten Texteditor öffnen, können wir sehen, dass der Abschnitt relativ zu Docker-CE-Stabil ist als aktiviert markiert:

[Docker-ce-stabil] name = docker ce stabil-$ basearch baseUrl = https: // download.Docker.com/linux/fedora/$ releasever/$ basearch/stabil enabled = 1 gpgcheck = 1 gpgkey = https: // download.Docker.com/linux/fedora/gpg 

Wenn DNF die analysiert .Repo Datei, die $ Releasever Die Variable wird, wie der Name schon sagt 32. Da es zum Zeitpunkt des Schreibens kein Docker-Ce-Repository gibt, das Fedora 32 ausdrücklich gewidmet ist, müssen wir diese Variable durch einen statischen Wert ersetzen, 31, die vorherige Fedora -Veröffentlichung. Wir können die Änderung einfach mit dem durchführen sed Befehl:

# Verwenden Sie unbedingt einzelne Zitate! $ sed -i 's/$ releasever/31/g' docker -ce.Repo 

Mit dem obigen Befehl ersetzten wir jedes Ereignis von $ Releasever in der Datei mit 31. Damit der Befehl korrekt funktioniert $ Charakter muss entkommen).

Wie Sie bemerken können, nur die stabil Der Zweig des Repositorys ist standardmäßig aktiviert (aktiviert = 1). Ich empfehle Ihnen, es so zu lassen, es sei denn, Sie haben eine bestimmte Anforderung.

Damit DNF das Docker-CECE-Repository verwendet, müssen wir das verschieben .Repo Datei an der /etc/yum.Repos.D Verzeichnis:

$ sudo mv docker-ce.Repo /etc /yum.Repos.D/ 

Zu diesem Zeitpunkt können wir den folgenden Befehl ausgeben, um die benötigten Docker-CE-Pakete zu installieren:

$ sudo dnf Installieren Sie Docker-CE-Docker-CLI-Container.IO Docker CE stabil - x86_64 17 KB/S | 8.9 KB 00:00 Abhängigkeiten gelöst. ====================================================== ====================================================== =====================ieben ====================================================== ====================================================== =============== installieren: Containerd.io x86_64 1.2.13-3.1.FC31 Docker-CE-Stabil 23 M Docker-CE X86_64 3:19.03.8-3.fc31 docker-ce-stabil 23 M Docker-CE-Cli x86_64 1:19.03.8-3.FC31 Docker-CE-Stabil 39 M Installation von Abhängigkeiten: Container-Selinux Noarch 2: 2.132.0-1.FC32 Updates 48 K libcGroup x86_64 0.42.2-1.fc32 fedora 68 k Transaction Summary ============================================ ====================================================== ==================================== Installieren Sie 5 Pakete Gesamt -Download -Größe: 85 m installierte Größe: 363 m Ist das in Ordnung [y/n]: 

Bestätigen Sie die Installation, um fortzufahren. Sie werden auch aufgefordert, den neu installierten Repository -GPG -Schlüssel zu akzeptieren.

Starten Sie den Docker -Daemon

Egal ob wir installiert haben Docker-CE aus dem dedizierten Repository oder der Moby-Engine, Sobald die Pakete installiert sind, müssen wir das Starten des Starts mit Containern, um tatsächlich mit Containern zu arbeiten Docker Daemon und optional machen, damit automatisch beim Boot gestartet wird. Um beide Vorgänge auszuführen, können wir die verwenden Systemctl Befehl und Ausführen:

$ sudo systemctl aktivieren -jetzt Docker 

Zu diesem Zeitpunkt haben wir Docker-CE oder Moby-Engine in unserem System installiert, und der Dämon läuft. Es gibt jedoch einige Anpassungen, die wir vornehmen müssen, damit Docker in unserer Verteilung korrekt funktioniert.

Aktivieren Sie die Rückwärtskompatibilität für CGroups

Seit Fedora 31 hat die von Red Hat gesponserte Verteilung zu Wechsel zu CGROUP V2 (Kontrollgruppen) standardmäßig. CGroup ist ein Mechanismus, der in den Linux -Kernel einbezogen wird und zur Organisation von Prozessen hierarchisch organisiert und Ressourcen entsprechend verteilen. Docker unterstützt die Version noch nicht 2 von cgroups müssen wir es deaktivieren. Um es zu tun, müssen wir die bestehen systemd.Unified_cgroup_hierarchy = 0 Parameter zum Kernel beim Start. Mit administrativen Privilegien öffnen die /etc/Standard/grub Datei. Es sollte einen ähnlichen Inhalt wie folgt haben:

Grub_timeout = 5 grub_distributor = "$ (SED, Release .*$ ,, g ' /etc /system-release) "grub_default = gespeichert grub_disable_submenu = true grub_terminal_output =" console "grub_cmdline_linux =" rhgb leise "grub_disable_recovery =" trub_enable_blscfgen = echte True_ True True = True True_Rexa 

Im Grub_cmdline_linux Zeile, wir müssen nur den oben erwähnten Parameter hinzufügen, damit er so aussieht:

GRUB_CMDLINE_LINUX = "RHGB RHE STURE SYSTEMD.Unified_cgroup_hierarchy = 0 " 

Speichern Sie nach Abschluss die geänderte Datei und bauen Sie die GRUB -Konfiguration neu auf:

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

Um die Änderungen effektiv zu machen, müssen wir die Maschine neu starten.



DNs reparieren, die nicht im Docker arbeiten

Versuchen wir nun, einen sehr einfachen Container basierend auf dem Beamten zu führen Busybox Bild. Wir verwenden es, um eine sehr einfache zu führen Klingeln Befehl auf www.Google.com. Dies ist das Ergebnis:

sudo docker run - -rm -it tousybox ping -c 3 www.Google.com ping: schlechte Adresse 'www.Google.com ' 

Wie Sie sehen können, wird ein Fehler erzeugt. Der Klingeln Befehl beschwert sich über www.Google.com ist eine schlechte Adresse, aber dies geschieht tatsächlich, weil die DNS -Auflösung im Container nicht funktioniert. Warum das passiert? Wenn Docker ausgeführt wird, muss einige Firewall -Anpassungen vorgenommen und IP -Maskerading verwendet werden. Dieses Verhalten wird von Firewalld blockiert, dem Standard -Firewall -Manager, der auf Fedora installiert ist. Der einfachste Weg, das Problem zu lösen, besteht darin, das explizit hinzuzufügen Docker0 Schnittstelle zum Vertrauenswürdige Firewall Zone. Wir können es über die tun Firewall-CMD Dienstprogramm:

$ sudo firewall-cmd --permanent --zone = vertrauen 

Zu diesem Zeitpunkt, wenn wir das wiederholen Klingeln Der Befehl über den belebtenBox-basierten Container sollte korrekt funktionieren:

$ sudo docer run - -rm -it tousybox ping -c 3 www.Google.com ping www.Google.com (216.58.198.36): 56 Daten Bytes 64 Bytes von 216.58.198.36: seq = 0 ttl = 51 Zeit = 31.559 ms 64 Bytes von 216.58.198.36: seq = 1 ttl = 51 Zeit = 30.417 ms 64 Bytes von 216.58.198.36: seq = 2 ttl = 51 Zeit = 30.154 ms --- www.Google.COMPING-Statistiken --- 3 Pakete übertragen, 3 Pakete erhalten, 0% Paketverlust Roundtrip min/avg/max = 30.154/30.710/31.559 ms 

Schlussfolgerungen

In diesem Tutorial haben wir den Unterschied zwischen gelernt Moby-Engine Und Docker-CE Und wir haben gelernt, sie auf Fedora 32 zu installieren. Wir haben auch gesehen, wie man die beiden Korrekturen anwendet. Nach dem Lesen dieses Artikels sollten Sie hoffentlich ein funktionierendes Setup haben.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Installieren Sie Docker auf Almalinux
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 22.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Mastering -Bash -Skriptschleifen beherrschen
  • So installieren Sie Kubernetes auf allen Linux -Distributionen
  • Ubuntu 20.04 Leitfaden
  • Einführung in MySQL -Speichermotoren