So installieren und konfigurieren Sie Docker-CE/Moby Engine auf Fedora 32
- 2985
- 833
- Matteo Möllinger
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
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
- « Aktivieren Sie Adobe Flash für Google Chrome auf Ubuntu 20.04 FOSSA FOSSA
- So installieren Sie Mod_SSL auf RHEL 8 / CentOS 8 mit HTTPD Apache Webserver »