# Podman Tutorial: Einstieg in die Container-Engine ohne Daemon

Container-[Virtualisierung](https://www.ionos.de/digitalguide/server/konfiguration/virtualisierung/ "Virtualisierung") hat in den vergangenen Jahren an Bedeutung gewonnen. Insbesondere durch das 2013 erschienene Docker populär geworden, ist die Technologie mittlerweile Grundkomponente diverser Tools für die **Ansteuerung virtueller Namespaces** (dt. „Namensräume“). Eine der interessantesten Lösungen ist Podman: Ursprünglich als Debugging-Tool für [CRI-O](https://www.ionos.de/digitalguide/server/knowhow/was-ist-cri-o/ "Was ist CRI-O?") konzipiert, das die Arbeit mit Kubernetes-Clustern einfacher gestalten sollte, hat sich die Software schnell zu einer eigenständigen, umfangreichen Engine für das **Management von Containern** entwickelt.

Hinweis Namespaces bzw. Namensräume ermöglichen es, ausgewählte Elemente eines Codes (z. B. Klassen) in einem Container zu gruppieren.

Was Podman so besonders macht und wie sich das Container-Werkzeug für die eigenen Zwecke nutzen lässt, erfahren Sie im Folgenden.

## Was ist Podman?

Podman (Abkürzung für: Pod-Manager) ist eine Container-Engine, die erstmals im Februar 2018 veröffentlicht wurde. Entwickler ist die amerikanische Software-Schmiede **Red Hat**, die vor allem durch leistungsstarke Enterprise-Lösungen für verschiedenste Open-Source-Projekte wie Red Hat Enterprise Linux (RHEL) oder [OpenStack](https://www.ionos.de/digitalguide/server/tools/was-ist-openstack/ "Was ist OpenStack?") bekannt ist. Auf den Erfahrungen von [Docker](https://www.ionos.de/digitalguide/server/knowhow/docker-tools-das-oekosystem-der-container-plattform/ "Docker-Tools | Das Ökosystem der Container-Plattform") aufbauend, war Podman ursprünglich aber gar nicht als eigenständige Engine, sondern als einfaches Debugging-Tool für CRI-O geplant – ein Plan, der schnell wieder verworfen wurde.

Die Container-Software ähnelt Docker in vielen Punkten und verwendet beispielsweise denselben Kommandozeilen-Interpreter wie der Industriestandard. Das macht es sogar möglich, typische [Docker-Befehle](https://www.ionos.de/digitalguide/server/knowhow/docker-befehle/ "Docker-Befehle") in Podman zu nutzen – hierfür muss lediglich der Alias *alias docker=podman* gesetzt werden. Dementsprechend ist ein Umstieg von Docker auf Podman in den meisten Fällen relativ unkompliziert. Die entscheidende Neuerung, die Podman mit sich bringt, ist der **Verzicht auf einen zentralen Daemon** als Steuerungsinstanz für die einzelnen Container. Dies gibt Ihnen die Möglichkeit, auch **ohne Root-Rechte** auf die verschiedenen virtualisierten Anwendungen zuzugreifen.

Hinweis Als Daemon bezeichnet man in Unix/Linux-Betriebssystemen ein Programm, das im Hintergrund ausgeführt wird und bestimmte Dienste und Prozesse zur Verfügung stellt.

Podman läuft **auf allen gängigen Linux-Distributionen** wie Ubuntu, Fedora, CentOS, Debian und RHEL sowie auf Raspbian (Raspberry-Pi-Betriebssystem). Dabei lässt sich die Engine in den meisten Fällen direkt über die Paketverwaltung des jeweiligen Systems installieren.

Tipp Erfahren Sie mehr zum Thema “[Podman vs. Docker – wo liegt die Zukunft der Container-Welt?](https://www.ionos.de/digitalguide/server/knowhow/podman-vs-docker/ "Podman vs. Docker")”.

## Aufbau und Funktionsweise von Podman

Zusätzlich zu dem Verzicht auf einen zentralen Daemon zählen die sogenannten **Pods** zu den entscheidenden Auszeichnungsmerkmalen von Podman. Bei diesen Pods, die dem Konzept von Kubernetes Pods nachempfunden sind, handelt es sich um Zusammenschlüsse mehrerer Container innerhalb eines gemeinsamen Linux-Namensraums, die sich bestimmte **Ressourcen teilen**. Auf diese Weise lassen sich verschiedenste virtualisierte Anwendungen flexibel miteinander kombinieren.

Wie zuvor erwähnt, gelingt das **Ausführen** der einzelnen Container auf dem Host als **gewöhnlicher Nutzer ohne Root-Rechte** – nur innerhalb eines Containers laufen die Prozesse rootgesteuert. Um dies zu ermöglichen, greift Podman auf die User-Namespaces des Linux-Kernels zurück, die den Prozessen spezielle Rechte und Nutzer-IDs zuweisen. Dass die Container in Wirklichkeit aber als Administrator ausgeführt werden, verleiht der virtualisierten Podman-Umgebung einen hohen Sicherheitsstandard.

Den Kern eines Pods bilden sogenannte **Infra-Container**, die ausschließlich für die Funktionalität des Zusammenschlusses verantwortlich sind und zu diesem Zweck die einzelnen Ressourcen wie Namespaces, Netzwerk-Ports, CPU, Arbeitsspeicher etc. verwalten und gewährleisten. Ferner setzt Podman beim Pod-Management auf das in C geschriebene **Monitoring-Tool** [Conmon](https://github.com/containers/conmon "Conmon-Projekt auf GitHub"), das die einzelnen virtualisierten Komponenten überwacht und beispielsweise Logs sichert. Zudem fungiert das Werkzeug als Schnittstelle zum Terminal des jeweiligen Containers. Als **Laufzeit für die Container** verwendet Podman die Software [runC](https://github.com/opencontainers/runc "GitHub-Verzeichnis von runC"), die auch in vielen anderen Lösungen wie Docker oder rkt zum Einsatz kommt.

[![Bild: Grafik: Schematischer Aufbau eines Pods](https://www.ionos.de/digitalguide/fileadmin/_processed_/5/d/csm_podman-aufbau-eines-pods_403f37c88a.webp "Grafik: Schematischer Aufbau eines Pods")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Schaubilder/podman-aufbau-eines-pods.png) Grafik: Schematischer Aufbau eines Pods ## Podman-Tutorial: Die ersten Schritte mit Podman

Nachdem wir die grundlegenden Eigenschaften von Podman vorgestellt haben, fassen wir im nachfolgenden Podman-Tutorial die wichtigsten Punkte für den Einstieg in die **Arbeit mit der Container-Engine** zusammen.

### Podman installieren unter Linux

Podman ist eine Software zur **Ausführung von Linux-Containern**. Auf Linux-Distributionen wie CentOS, Ubuntu, Debian und Co. ist das Tool ebenso leicht wie schnell installiert: In den meisten Fällen sind die Installationspakete direkt in der Paketverwaltung der jeweiligen Systemsoftware zu finden und mithilfe der systemtypischen Terminal-Befehle installiert.

Hinweis Als Alternative zu den nativen Paketen im System-Repository stellt das [Kubic-Projekt auf opensuse.org](https://build.opensuse.org/project/show/devel:kubic:libcontainers:stable "opensuse.org: Kubic-Projekt") verschiedene **Podman-Installationspakete** für diverse Distributionen und Releases zur Verfügung.

**Debian, Ubuntu, Raspbian**:

```none
sudo apt-get update -qq
sudo apt-get -qq -y install podman
```

**Fedora, CentOS, Amazon Linux 2, RHEL 7**:

```none
sudo yum -y install podman
```

**OpenSUSE**:

```none
sudo zipper install podman
```

### Podman installieren unter Windows und macOS

Podman ist in Linux-Umgebungen zuhause. Sie können die Container-Engine aber auch auf Geräten nutzen, die Windows oder macOS als Betriebssystem verwenden. Voraussetzung hierfür ist, dass Sie von diesen Geräten aus **Zugriff auf eine Linux-Installation** haben, die entweder **innerhalb einer virtuellen Maschine auf dem Host** läuft oder **über das Netzwerk zugänglich** ist.

Falls Sie über eine solche Zugriffsmöglichkeit verfügen, benötigen Sie lediglich einen Podman-Remote-Client, mit dem Sie eine SSH-Verbindung zum Podman-Backend aufbauen können.

Hinweis Die Verbindungsinformationen für die SSH-Verbindung sind in der Konfigurationsdatei *podman-remote.conf* einzutragen. Ausführliche Informationen über die **Einrichtung und Nutzung** liefert folgendes [Podman-Remote-Client-Tutorial auf GitHub](https://github.com/containers/libpod/blob/master/docs/tutorials/remote_client.md "GitHub-Tutorial: „Podman remote-client“").

### So funktioniert das Container-Image-Management mit Podman

Podman orientiert sich in Bezug auf Features und Syntax vorrangig an Docker, weshalb Sie bei der **Einrichtung der gewünschten Container** auf den großen Fundus aus einsatzfertigen Docker-Images zurückgreifen können, der auch als [Docker Hub](https://hub.docker.com/ "Docker Hub: Bibliothek und Community für Container-Images") bekannt ist. Mithilfe des ***pull*-Kommandos** können Sie von dort beliebige Anwendungs-Images herunterladen, z. B. die **neueste Version von Ubuntu**:

```none
podman pull hub.docker.com/_/ubuntu:latest
```

Der offizielle Speicherpfad für die einzelnen Images ist der lokale Pfad */.local/share/containers/*, wobei jeder Nutzer seinen eigenen Namensraum besitzt, sodass das eigene Container-Setup beispielsweise vom Root-Setup getrennt ist. Einen **Überblick über die lokal gespeicherten Images** erhalten Sie mit folgendem Befehl:

```none
podman images
```

Für eine **Auflistung der Root-Images** ist das Linux-typische Kommando „sudo“ voranzustellen:

```none
sudo podman images
```


This is a markdown version of: [https://www.ionos.de/digitalguide/server/tools/podman-tutorial/](https://www.ionos.de/digitalguide/server/tools/podman-tutorial/) for AI/LLM consumption.