Docker ist ein Tool, das verwendet wird, um Software in einem Container auszuführen. Es ist eine großartige Möglichkeit für Entwickler und Benutzer, sich weniger Gedanken über die Kompatibilität mit einem Betriebssystem und Abhängigkeiten zu machen, da die enthaltene Software auf jedem System identisch ausgeführt werden sollte.
Docker steht zum Download und zur Installation auf Fedora sowie den meisten anderen Linux-Distributionen zur Verfügung. Die Installation auf Fedora kann jedoch etwas schwierig sein, da Red Hat in seinen Distributionen keine native Unterstützung für Docker bietet. Stattdessen forciert Red Hat die Unterstützung für Podman, eine Alternative zu Docker. Das macht Docker etwas schwieriger zu installieren, aber es ist immer noch möglich auf Fedora.
In diesem Leitfaden zeigen wir Ihnen, wie Sie Docker auf Fedora installieren und mit der Installation von containerisierter Software beginnen. Nachdem Docker installiert ist, können Sie es verwenden, um Softwarepakete zu installieren, ähnlich wie Sie den Paketmanager Ihrer Distribution verwenden würden, um eine App herunterzuladen. Der Unterschied zur Verwendung von Docker besteht darin, dass alles stärker automatisiert ist und Kompatibilität und Abhängigkeiten keine potenziellen Probleme mehr darstellen.
In diesem Tutorial lernen Sie:
- So installieren Sie Docker
- So starten Sie Docker und lassen es automatisch beim Booten laufen
- So führen Sie Docker ohne Root aus
- So suchen Sie nach einem Docker-Image
- So installieren Sie ein Docker-Image
- So führen Sie ein Docker-Image aus
- Wie man Docker mit verschiedenen Befehlen überwacht
- So starten Sie automatisch einen Docker-Container
Docker, auf dem ein Container-Image unter Fedora Linux ausgeführt wird
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Fedora-Linux |
Software | Docker |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Installieren Sie Docker auf Fedora
Red Hat hat uns einige Hindernisse in den Weg gelegt, sodass wir Docker nicht einfach mit einer einfachen dnf install
installieren können Befehl. Wir müssen zuerst das Docker-Repository zu unserem System hinzufügen und dann einige widersprüchliche Pakete deinstallieren, die standardmäßig auf Fedora installiert sind.
- Beginnen Sie mit der Installation des
dnf-plugins-core
Paket, falls es noch nicht auf Ihrem System vorhanden ist. Dadurch können Sie Ihre dnf-Repositories verwalten und ihnen das offizielle Docker-Repo hinzufügen.$ sudo dnf -y install dnf-plugins-core
- Als nächstes fügen Sie das Docker-Repository mit dem folgenden Befehl zu Ihrem System hinzu.
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
- Bevor wir mit der Installation von Docker beginnen, müssen wir den
podman
entfernen undbuildah
Pakete aus unserem System, da sie mit Docker in Konflikt stehen und dessen Installation verhindern.$ sudo dnf remove podman buildah
- Schließlich können wir die drei benötigten Docker-Pakete installieren, indem wir den folgenden Befehl ausführen.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
- Starten Sie nach Abschluss der Installation den Docker-Dienst und aktivieren Sie ihn optional für die Ausführung bei jedem Neustart des Systems:
$ sudo systemctl start docker.service $ sudo systemctl start containerd.service $ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
- Sie können überprüfen, ob Docker installiert ist, und einige Informationen über die aktuelle Version sammeln, indem Sie diesen Befehl eingeben:
$ sudo docker version
- Es gibt auch eine schnelle und einfache Möglichkeit, zu sehen, wie viele Docker-Container derzeit ausgeführt werden, und einige der konfigurierten Optionen von Docker anzuzeigen, indem Sie Folgendes eingeben:
$ sudo docker info
Ausgabe des Docker-Info-Befehls, der seine Konfiguration zeigt
Ausgabe des Docker-Versionsbefehls
Docker ohne Root ausführen
Standardmäßig müssen Sie sudo
verwenden oder melden Sie sich bei root an, wann immer Sie einen Docker-Befehl ausführen möchten. Dieser nächste Schritt ist optional, aber wenn Sie es vorziehen, Docker als Ihr aktueller Benutzer auszuführen, fügen Sie Ihr Konto mit diesem Befehl zur Docker-Gruppe hinzu:
$ sudo usermod -aG docker $USER
Sie müssen Ihr System neu starten, damit diese Änderungen wirksam werden.
$ reboot
Suche nach einem Docker-Image
Jetzt können Sie Images mit Docker installieren. Wenn Sie den Namen eines Images, das Sie installieren möchten, bereits kennen, können Sie mit dem nächsten Abschnitt fortfahren. Wenn Sie Docker nach der gewünschten Software durchsuchen müssen, können Sie die folgende Befehlssyntax verwenden:
$ docker search [name]
Versuchen wir beispielsweise, nach nginx zu suchen, einer beliebten Webserver-Software.
$ docker search nginxDocker kann nach allen verfügbaren Container-Images suchen
Wie Sie sehen können, gibt es ein offizielles Image für nginx (gekennzeichnet durch OFFICIAL
Spalte) einfach nginx
genannt . Es sind auch andere Versionen verfügbar, und Sie müssten ihre Beschreibungen lesen, um zu sehen, was sie vom offiziellen Bild unterscheiden.
Installieren Sie ein Docker-Image
Sobald Sie wissen, welches Image Sie installieren möchten, können Sie Docker mit dem folgenden Befehl anweisen, die gewünschte Software herunterzuladen. Nur als Beispiel installieren wir hello-world
Paket, das verwendet werden kann, um sicherzustellen, dass Docker Images erfolgreich herunterladen und ausführen kann.
$ docker pull hello-world
Docker lädt ein Container-Image herunter
Die Ausgabe im obigen Screenshot zeigt, dass Docker das angegebene Image finden und herunterladen konnte.
Ausführen eines Docker-Images
Nachdem das Image heruntergeladen wurde, führen Sie es mit dem folgenden Befehl aus:
$ docker run hello-worldDocker konnte das Hello-World-Image erfolgreich ausführen
Überwachungs-Docker
Docker bietet uns viele Optionen, um zu sehen, was mit unseren Images los ist, wie viele Systemressourcen sie verwenden usw. Die folgenden Befehle sind praktisch, um Docker und unsere installierten Images zu überwachen.
Geben Sie Folgendes ein, um zu sehen, welche Docker-Container ausgeführt werden, und um ihren aktuellen Status zu überprüfen:
$ docker container lsDer docker container ls Befehl zeigt aktuell laufende Container
Um eine Liste aller installierten Docker-Images anzuzeigen, geben Sie Folgendes ein:
$ docker images
Der Befehl docker images zeigt an, welche Images derzeit in Docker installiert sind
Geben Sie Folgendes ein, um die aktuelle CPU-, RAM- und Netzwerknutzung laufender Images anzuzeigen:
$ docker statsSehen Sie sich die aktuelle Systemnutzung von Docker-Images mit dem Befehl docker stats an
Geben Sie Folgendes ein, um die Netzwerkkonfiguration von Docker anzuzeigen:
$ docker network lsZeigen Sie aktuell konfigurierte Netzwerke in Docker mit docker network ls an
Container automatisch starten
Wir haben bereits gesehen, wie Sie sicherstellen können, dass der Docker-Dienst automatisch gestartet wird, wenn Ihr Computer hochfährt. Falls Sie diesen Schritt übersprungen haben, hier ist der Befehl noch einmal.
$ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
Wir können Docker-Dienste auch so steuern, dass sie automatisch gestartet werden. Hier sind ein paar Befehle, um ihr Verhalten zu steuern. Wir verwenden nginx
wie unsere Beispielsoftware in diesen Befehlen.
- Um einen neuen Container zu starten und ihn so zu konfigurieren, dass er automatisch neu gestartet wird, sofern er nicht gestoppt oder Docker neu gestartet wurde, führen Sie den folgenden Befehl aus.
$ docker run -d --restart unless-stopped nginx
- Wenn der Container bereits läuft, verwenden Sie diesen Befehl, um sicherzustellen, dass er automatisch neu gestartet wird.
$ docker update --restart unless-stopped nginx
- Wir können auch sicherstellen, dass alle Container automatisch neu gestartet werden, sofern sie nicht explizit gestoppt werden, indem Sie den folgenden Befehl verwenden.
$ docker update --restart unless-stopped $(docker ps -q)
- Um einen Container immer neu zu starten, auch wenn er manuell gestoppt wurde, verwenden Sie
always
Option anstelle vonunless stopped
.$ docker update --restart always nginx
- Sie können auch den
on-failure
verwenden Option, um Container nur dann automatisch neu starten zu lassen, wenn sie auf einen Fehler gestoßen sind.$ docker update --restart on-failure nginx
- Zu guter Letzt, um Ihren Container wieder auf die Standardeinstellung zu konfigurieren, was bedeutet, dass kein automatischer Neustart erfolgt, verwenden Sie
no
Option.$ docker update --restart no nginx
Fehlerbehebung
Wenn Sie auf Probleme mit Docker stoßen, einschließlich Berechtigungsfehlern oder „Kann keine Verbindung zum Docker-Daemon herstellen“, haben die Docker-Entwickler ein praktisches Skript, das Sie ausführen können, um nach einer Reihe häufiger Probleme zu suchen. So können Sie es herunterladen und ausführen.
$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh $ bash ./check-config.shDas Ausführen des Docker-Skripts check-config zeigt uns, ob auf unserem System etwas falsch konfiguriert ist
Abschlussgedanken
Obwohl RHEL und damit auch Fedora Docker nicht nativ unterstützen, ist es dennoch möglich, es zum Laufen zu bringen, wie wir in diesem Handbuch gesehen haben. RHEL-native Tools wie Podman und Buildah sind mit Docker kompatibel, benötigen jedoch keine Server-/Client-Architektur, um ausgeführt zu werden. Die Verwendung nativer Tools ist nach Möglichkeit immer der empfohlene Weg, aber aus dem einen oder anderen Grund möchten Sie vielleicht trotzdem das ursprüngliche Docker installieren.