Container-Management mit Podman und Skopeo

Red Hat Enterprise LinuxBeginner
Jetzt üben

Einführung

Als Systemadministrator, der mit Red Hat Enterprise Linux (RHEL) arbeitet, gehört der Umgang mit containerisierten Anwendungen zu Ihren Kernkompetenzen. In dieser Herausforderung nutzen Sie die Kommandozeilenwerkzeuge podman und skopeo, um grundlegende Aufgaben der Container-Verwaltung zu bewältigen. Sie üben das Herunterladen von Images aus einer öffentlichen Registry, das Ausführen dieser Images als Container, das Überprüfen ihrer Konfiguration und das Kopieren von Images in eine lokale Registry.

Container-Image herunterladen und ausführen

Ihre erste Aufgabe besteht darin, ein Container-Image aus einer öffentlichen Registry zu laden und auf Ihrem lokalen System zu starten. Sie verwenden hierfür das nginx-Webserver-Image, ein gängiges Beispiel zur Demonstration von Container-Funktionen.

Aufgaben

  • Laden Sie das aktuellste nginx-Container-Image aus der docker.io-Registry mit dem Befehl podman herunter.
  • Starten Sie einen Container basierend auf dem nginx-Image und stellen Sie sicher, dass dieser betriebsbereit ist.

Anforderungen

  • Der nginx-Container muss den Namen my-nginx erhalten.
  • Der Container muss im Hintergrund laufen (Detached-Modus).
  • Der Port 80 des Containers muss auf den Port 8080 Ihres lokalen Rechners gemappt werden.

Beispiel

Nachdem der Container erfolgreich gestartet wurde, können Sie die Erreichbarkeit testen. Der Befehl curl sollte die Standard-Willkommensseite von Nginx zurückgeben.

$ curl http://localhost:8080

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
✨ Lösung prüfen und üben

Container inspizieren

Nachdem ein Container gestartet wurde, müssen oft detaillierte Informationen über dessen Konfiguration, Netzwerkeinstellungen und eingebundene Volumes abgerufen werden. Der Befehl podman inspect liefert diese Daten in einem strukturierten JSON-Format.

Aufgaben

  • Inspizieren Sie den laufenden Container my-nginx.
  • Leiten Sie die Ausgabe der Inspektion in eine Datei um.

Anforderungen

  • Verwenden Sie den Befehl podman inspect, um Details über den Container my-nginx zu erhalten.
  • Speichern Sie die JSON-Ausgabe in einer Datei namens nginx-inspect.json im Verzeichnis ~/project/containers/.

Beispiel

Die Datei nginx-inspect.json wird ein umfangreiches JSON-Array mit allen Konfigurationsdetails des Containers enthalten. Sie können den Inhalt mit den Befehlen cat oder less betrachten.

$ cat ~/project/containers/nginx-inspect.json
[
    {
        "Id": "a933dd...c8e",
        "Created": "2023-10-27T10:30:00.123456789Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
...
✨ Lösung prüfen und üben

Container-Image mit Skopeo kopieren

skopeo ist ein leistungsstarkes Werkzeug zum Verschieben von Container-Images zwischen verschiedenen Speichertypen, wie öffentlichen Registries, lokalem Speicher und privaten Registries. In diesem Schritt kopieren Sie das nginx-Image in eine lokale Container-Registry, die auf Ihrem Rechner läuft.

Standardmäßig übertragen Podman und Skopeo keine Images an unsichere (HTTP) Registries. Sie müssen Ihr System zuerst so konfigurieren, dass es der lokalen Registry vertraut, wobei das moderne v2-Konfigurationsformat für Registries verwendet wird.

Aufgaben

  • Konfigurieren Sie Ihr System so, dass das Pushen von Images in die unsichere lokale Registry unter localhost:5000 erlaubt ist.
  • Verwenden Sie skopeo, um das Image nginx:latest von docker.io in Ihre lokale Registry zu kopieren.
  • Laden Sie das Image aus Ihrer lokalen Registry in den lokalen Speicher von Podman herunter, um zu prüfen, ob der Kopiervorgang erfolgreich war.

Anforderungen

  • Bearbeiten Sie die Datei /etc/containers/registries.conf, um localhost:5000 als unsichere Registry im v2-Format zu konfigurieren. Hierfür benötigen Sie sudo-Rechte.
  • Verwenden Sie skopeo copy, um das Image docker.io/library/nginx:latest zu kopieren.
  • Das Ziel für das Image in der lokalen Registry soll localhost:5000/my-local-nginx:latest sein.
  • Laden Sie nach dem Kopieren das Image mit podman pull von localhost:5000/my-local-nginx:latest herunter.
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Herausforderung haben Sie die wesentlichen Fertigkeiten für die Verwaltung von Containern auf einem Red Hat Enterprise Linux System erlernt. Sie haben erfolgreich podman eingesetzt, um ein Image herunterzuladen, es als benannten Container mit Port-Mapping auszuführen und dessen detaillierte Konfiguration zu inspizieren. Darüber hinaus haben Sie eine kritische Praxisaufgabe gemeistert: die Konfiguration einer unsicheren Registry und die Verwendung von skopeo, um ein Image von einer öffentlichen Quelle in eine private, lokale Registry zu kopieren. Diese Befehle sind grundlegende Werkzeuge für jeden Systemadministrator, der in einer modernen, containerisierten Umgebung arbeitet.