GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Podman Tutorial - Grundlagen für Anfänger

Einführung

Podman ist eine Container-Engine zum Ausführen und Verwalten von OCI-Containern unter Linux. RedHat entwickelt es als direkte Alternative zu Docker, der berühmten Container-Management-Plattform, mit der alles begann.

Dieses Tutorial hilft Ihnen zu verstehen, wie Podman funktioniert, indem es seine Befehlssyntax erklärt und praktische Beispiele für die Verwendung von Podman-Befehlen bereitstellt.

Voraussetzungen

  • Zugriff auf ein Befehlszeilen-/Terminalfenster.
  • Podman installiert und konfiguriert (siehe So installieren Sie Podman unter macOS oder So installieren Sie Podman unter Ubuntu).

Podman-Befehle

Podman hat eine sehr ähnliche Befehlssyntax wie Docker. Der Haupt-podman Auf den Befehl folgen Podman-Verwaltungsbefehle und -optionen:

podman [command] [options]

Nachfolgend finden Sie eine Tabelle mit allen Podman-Befehlen:

Befehl Beschreibung
attach  Mit seinem Namen oder seiner ID an einen laufenden Container anhängen.
auto-update Container-Auto-Update-Richtlinie verwenden, um Container zu aktualisieren.
build  Containerfiles-Anweisungen verwenden, um ein Image zu erstellen.
commit  Erstellen Sie ein neues Bild, das die an einem Container vorgenommenen Änderungen widerspiegelt.
container  Podman-Container verwalten.
cp  Kopiert Dateien/Verzeichnisse aus einem Container in das lokale Dateisystem und umgekehrt.
build  Container erstellen, ohne ihn zu starten.
diff  Änderungen anzeigen, die an einem Container oder Bild vorgenommen wurden.
events  Podman-Ereignisse anzeigen.
exec  Führen Sie einen Prozess in einem laufenden Container aus.
export  Erstellen Sie ein TAR-Archiv, das den Inhalt des Dateisystems des Containers enthält.
generate  Erstellen Sie eine strukturierte Ausgabe basierend auf einem Container, Volume oder Pod.
healthcheck  Container-Zustandsprüfungen verwalten.
history  Bildverlauf anzeigen.
image  Bilder verwalten.
images  Im lokalen Speicher verfügbare Bilder auflisten.
import  Importieren Sie einen Dateisystem-Image-Tarball.
info  Podman-Systeminformationen anzeigen.
init  Container initialisieren.
inspect  Container- oder Image-Konfiguration anzeigen.
kill  Container löschen.
load  Lade ein im Containerarchiv verfügbares Bild.
login  Container-Registry-Anmeldung.
logout  Von einer Containerregistrierung abmelden.
logs  Containerprotokolle anzeigen.
machine  Verwalten Sie die Podman-VM.
manifest  Erstellen und verwalten Sie Manifestlisten und Bildindizes.
mount  Mounten Sie das Root-Dateisystem eines Containers oder listen Sie aktuell gemountete Container auf.
network  Podman-Netzwerke verwalten.
pause  Container-Prozesse pausieren.
play  Spielen Sie einen Container, ein Volume oder einen Pod ab.
pod  Podman-Pods verwalten.
Port Portzuordnungen auflisten oder eine containerspezifische Zuordnung für den Container auflisten.
ps  Laufende Container auflisten.
pull  Kopieren Sie ein Bild aus einer Registrierung in den lokalen Speicher.
push  Push ein Bild von einem lokalen Rechner an ein bestimmtes Ziel.
rename  Container umbenennen.
restart  Container neu starten.
rm  Container entfernen.
rmi  Entfernen Sie ein Bild aus dem lokalen Speicher.
run  Führen Sie einen Befehl in einem Container aus.
save  Bild in einer lokalen Datei speichern.
search  Suchen Sie in einer Registrierung nach einem Bild.
secret  Geheimnisse manipulieren.
start  Container starten.
stats  Statistiken zur Ressourcennutzung anzeigen.
stop  Container stoppen.
system  Verwalten Sie die Podman-Systeme.
tag  Ordnen Sie einem lokalen Bild einen Namen zu.
top  Zeige die Prozesse, die in einem Container laufen.
unmount  Root-Dateisystem eines Containers aushängen.
unpause  Container-Prozesse anhalten.
unshare  Starte einen Prozess in einem neuen Benutzernamensraum.
untag  Tags von einem lokalen Bild entfernen.
version  Versionsinformationen anzeigen.
volume  Containervolumen verwalten.
wait  Warten Sie, bis ein Container stoppt.

Podman-Tutorial

Obwohl Podman in erster Linie eine Container-Engine ist – es wurde entwickelt, um OCI-Container zu erstellen und auszuführen, können Benutzer auch podman verwenden Befehle zum Verwalten von Container-Images.

In den folgenden Abschnitten wird erläutert, wie Sie mit Podman Bilder, Container und Pods erstellen und bearbeiten.

Anzeigen der Podman-Hilfe

Über die Befehlszeile können Sie schnell auf die Podman-Dokumentation verweisen. Um verfügbare podman anzuzeigen Befehle in Ihrem Terminal, geben Sie ein:

podman help

Um das vollständige Podman-Handbuch anzuzeigen, verwenden Sie den man-Befehl:

Podman-Bilder

Die Imageerstellung und -verwaltung in Podman erfolgt mit Buildah, einem Imageerstellungstool, das eine Coreutils-Schnittstelle auf niedrigerer Ebene verwendet. Wenn ein Benutzer einen podman ausführt Befehl, der sich auf Bilder bezieht, ruft Podman Buildah auf, um die Aktion auszuführen.

Die folgenden Abschnitte zeigen einige wichtige Bildverwaltungsbefehle.

Bilder suchen

Durchsuchen Sie Register nach verfügbaren Bildern mit der search Befehl.

podman search [search-term]

Begrenzen Sie die Anzahl der Ergebnisse mit --limit Möglichkeit. Zum Beispiel, um drei Ergebnisse für "centos" zu erzeugen Suchbegriff, geben Sie ein:

podman search --limit 3 centos

Bild prüfen

Bevor Sie ein Podman-Image abrufen, empfiehlt es sich, es zu überprüfen. Verwenden Sie den podman inspect Befehl und das System gibt Bildmetadaten wie Dateigröße, Architektur, Betriebssystem usw. aus.

podman inspect [repository or image ID]

Verwenden Sie das --format Option mit podman inspect Befehl, um bestimmte Metadaten abzurufen. Im Beispiel unten gibt der Befehl nur die Beschreibung des Bildes zurück:

podman inspect --format=’{{.Labels.description}}’ [image ID]

Herunterladen von Bildern

Das Abrufen von Bildern aus Online-Repositories erfolgt mithilfe von podman pull Befehl. Die Syntax lautet:

podman pull [registry/image]

Das Beispiel veranschaulicht das Abrufen eines Bildes von fedoraproject.org Registrierung:

Laufende Bilder

Führen Sie Podman-Images mit podman run aus :

podman run [image]

Wenn das Image nicht lokal verfügbar ist, zieht Podman es aus einer Online-Registrierung und führt es dann als Container aus.

Anzeigen von Bildern

Die podman images Unterbefehl wird verwendet, um lokal verfügbare Bilder aufzulisten:

podman images

Verwenden Sie Optionen, um die Suchergebnisse einzugrenzen. Der --filter filtert die Ausgabe basierend auf den von Ihnen angegebenen Bedingungen. Der folgende Befehl sucht beispielsweise nach allen Bildern, die "redhat" enthalten im Namen:

podman images --filter reference=redhat

Erstellen benutzerdefinierter Images

Um benutzerdefinierte Images mit Podman zu erstellen, benötigen Sie eine Docker- oder Containerdatei. Diese Dateien enthalten Anweisungen, die das Buildah-Tool verwendet, um ein Image zu erstellen.

Das Erstellen von Dateien wird mit podman build durchgeführt Befehl. Um beispielsweise ein Bild aus einem Verzeichnis zu erstellen, das das Anweisungsskript enthält, führen Sie den folgenden Befehl aus:

podman build .

Buildah sammelt den notwendigen Dateikontext und erstellt ein Image.

Bilder entfernen

Der podman rmi Der Befehl wird verwendet, um Bilder aus dem lokalen Speicher zu entfernen. Stellen Sie vor dem Entfernen eines Podman-Images sicher, dass alle zugehörigen Container gestoppt und entfernt wurden.

Entfernen Sie ein Bild mithilfe von podman rmi Befehl gefolgt vom Bildnamen oder der ID:

podman rmi [image-name-or-id]

Die Ausgabe bestätigt, dass das Bild entfernt wurde.

Podman-Container

Das Erstellen und Verwalten von Containern ist die Hauptfunktion von Podman. Im folgenden Abschnitt finden Sie einige der gängigsten Containerverwaltungsbefehle.

Container ausführen

Der podman run Der Befehl hat die gleichen Funktionen wie docker run. Die Optionen, die dem Befehl folgen, hängen vom Typ des ausgeführten Containers ab. Das folgende Beispiel veranschaulicht die Ausführung eines httpd Beispiel, indem Sie ein Bild verwenden, das in docker.io verfügbar ist Aufbewahrungsort:

podman run -p 8080:80/tcp docker.io/library/httpd

Der Befehl führt den Container aus und zeigt seine Eingabeaufforderung an.

Verlassen Sie die Container-Eingabeaufforderung, indem Sie Strg + C drücken . Dieser Befehl beendet den Container.

Container im Hintergrund ausführen

Verwenden Sie die folgende Syntax, um die Container-Eingabeaufforderung zu überspringen und den Container im Hintergrund auszuführen:

podman run -dt -p 8080:80/tcp docker.io/library/httpd

Wenn der Container erfolgreich gestartet wird, zeigt die Ausgabe des Befehls die lange ID des Containers an.

An Container anhängen

Geben Sie den Container mit dem podman attach ein Befehl:

podman attach [container-name-or-id]

Das Beispiel zeigt das Anhängen an einen laufenden Alpine Linux-Container unter Verwendung der Container-ID.

Ausgeführte Container anzeigen

Zeigen Sie aktuell ausgeführte Container mit dem ps an Befehl:

podman ps

Die Befehlsausgabe zeigt eine Liste mit grundlegenden Informationen zum Ausführen von Containern.

Automatisches Löschen von Containern nach dem Schließen

Verwenden Sie --rm Option mit podman run um einen Container automatisch zu löschen:

podman run --rm -dt -p 8080:80/tcp alpine:latest

Container starten und stoppen

Verwenden Sie start und stop Befehle zum Starten und Stoppen bestehender Container.

podman start [container-id]

Die Ausgabe zeigt die Container-ID.

podman stop [container-id]

Die ID des gestoppten Containers wird angezeigt.

Containern Namen zuweisen

Sie können laufende Container mit der Option --name benennen mit dem podman run Befehl. Um beispielsweise einen Alpine-Linux-Container zu benennen, verwenden Sie den folgenden Befehl:

podman run --name AlpineTest -dt -p 8080:80/tcp alpine:latest

Das folgende Bild zeigt, dass podman run war erfolgreich. Der Podman ps listet ausgeführte Podman-Container auf, und der Name ist in NAMES sichtbar Spalte.

Anzeigen von Containerprotokollen

Zeigen Sie Containerprotokolle zum Zeitpunkt der Ausführung mit den podman logs an Befehl.

podman logs [container-name-or-id]

Verwenden Sie das -l Flag, um die Protokolle für den neuesten Container anzuzeigen.

Container entfernen

Um einen Podman-Container zu löschen, stellen Sie zunächst sicher, dass der Container gestoppt wurde. Verwenden Sie dann den podman rm Befehl gefolgt vom Namen oder der ID des Containers.

podman rm [container-name-or-id]

Das folgende Beispiel zeigt das Entfernen von AlpineTest Behälter.

Um einen laufenden oder unbrauchbaren Container zu entfernen, fügen Sie das -f hinzu Option.

podman rm -f [container-name-or-id]

Um mehrere Container auf einmal zu entfernen, listen Sie die Container-IDs getrennt durch ein Leerzeichen auf:

podman rm [container-1-id container-2-id container-3-id]

Podman-Pods

Pods sind Gruppen von Containern, die Ressourcen gemeinsam nutzen. Podman-Pods sind das Merkmal, das Podman von Docker unterscheidet. Die nächsten Abschnitte veranschaulichen einige der gängigen Pod-Operationen in Podman.

Pods auflisten

Verwenden Sie den folgenden Befehl, um alle auf dem System verfügbaren Pods aufzulisten:

podman pod ls

Die Liste zeigt Pod-ID, Name, Status, Zeitpunkt der Erstellung, Infra-ID und die Anzahl der darin enthaltenen Container.

Leere Pods erstellen

Erstellen Sie einen leeren Pod in Podman mit der folgenden Syntax:

podman pod create

Die Ausgabe zeigt die ID des neu erstellten Pods.

Hinzufügen von Containern zu Pods

Um einem Pod einen Container hinzuzufügen, verwenden Sie --pod Label mit docker run :

podman run [options] --pod [pod-name-or-id] [image]

Im folgenden Beispiel wird dem Pod ein Alpine-Linux-Container mit der ID e06ed089b454 zugewiesen :

Pods mit Containern erstellen

Podman kann einen Container erstellen und ihn in einem einzigen podman run zu einem neuen Pod hinzufügen Befehl. Die Syntax enthält den --pod Bezeichnung:

podman run [options] --pod new:[pod-name] [image]

Das folgende Beispiel führt einen Container mit alpine:latest aus image und fügt es einem neuen Pod namens AlpineTest hinzu :

Der podman pod ls Die Befehlsausgabe zeigt den neuen Pod mit zwei Containern.

Pods starten, stoppen und löschen

Starten Sie einen Pod mit dem folgenden Befehl:

podman pod start [pod-name-or-id]

Um einen Pod zu stoppen, führen Sie Folgendes aus:

podman pod stop [pod-name-or-id]

Verwenden Sie zum Entfernen eines angehaltenen Pods und seines Containers:

podman pod rm [pod-name-or-id]

Um laufende Container zu stoppen und zu entfernen und dann den Pod zu entfernen, verwenden Sie -f Möglichkeit:

podman pod rm -f [pod-name-or-id]

Um mehrere angehaltene Pods mit einem Befehl zu entfernen, listen Sie die Pod-IDs durch ein Leerzeichen getrennt auf:

podman pod rm -f [pod1-id pod2-id pod3-id]

Mögliche Podman-Probleme und deren Behebung

Dieser Abschnitt listet einige allgemeine Podman-Probleme auf und bietet Lösungen.

Privilegierter Port kann nicht verfügbar gemacht werden

Podman ermöglicht Nicht-Root-Benutzern das Ausführen von Containern. Sie sind jedoch darauf beschränkt, nur an nicht privilegierte Ports weiterzuleiten. Wenn Sie versuchen, als Nicht-Root-Benutzer an einen privilegierten Port weiterzuleiten, erhalten Sie die folgende Fehlermeldung:

Die Lösung für dieses Problem besteht darin, einen nicht privilegierten Port auszuwählen oder den Befehl mit sudo auszuführen.

Podman-Suchprobleme

Ein weiteres häufiges Problem ist die podman search Befehl, der eine leere Ausgabe zurückgibt.

Dieses Problem bezieht sich normalerweise auf /etc/containers/registries.conf Datei. Öffnen Sie die Datei in einem Texteditor:

sudo nano /etc/containers/registries.conf

Scrollen Sie zum Ende der Datei und stellen Sie sicher, dass Podman über zu durchsuchende Registrierungen verfügt.

Wenn in der Datei keine Registrierungen aufgeführt sind, können Sie die gängigen wie RedHat, Fedora und Docker hinzufügen, indem Sie die folgende Syntax verwenden:

unqualified-search-registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]

Speicher die Datei. Die podman search Die Liste sollte mit Ergebnissen aus den registrierten Online-Registern gefüllt werden.

Fehler:Ungültige Konfiguration angegeben

Beim Hinzufügen von Containern zu einem Pod wird möglicherweise die folgende Meldung angezeigt:

Error: invalid config provided: published or exposed ports must be defined when the pod is created: network cannot be configured when it is shared with a pod

Dieses Problem tritt auf, wenn Sie versuchen, einen Container mit Ports hinzuzufügen, die bei der Pod-Erstellung nicht definiert wurden. Derzeit erlaubt Podman dies nicht.


Ubuntu
  1. Python SciPy Tutorial - Ein Leitfaden für Anfänger

  2. Jenkins-Tutorial:Grundlagen für Anfänger

  3. Netplan-Netzwerkkonfigurations-Tutorial für Anfänger

  4. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  5. Linux Date Command Tutorial für Anfänger (8 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Bash-Scripting-Tutorial für Anfänger

Bash Heredoc-Tutorial für Anfänger

So installieren Sie Google Chrome unter Ubuntu 20.04:Tutorial für Anfänger