Docker Alternative Podman

Docker ist zweifellos eine der bekanntesten Technologien, wenn es um Containerisierung geht. In vielen Produktionsumgebungen und bei Entwicklern auf der ganzen Welt ist Docker das Tool der Wahl. Doch es gibt auch Alternativen, die einige Vorteile bieten. Eine davon ist Podman, ein containerisierungs-Tool, das auf ähnliche Weise wie Docker funktioniert, jedoch auf wesentliche Unterschiede setzt – insbesondere in Bezug auf Sicherheit und Architektur.

In diesem Blog-Beitrag möchte ich dir eine Einführung in Podman geben und Schritt für Schritt zeigen, wie du damit Container erstellen und verwalten kannst.


Was ist Podman?

Podman (kurz für Pod Manager) ist ein Open-Source-Container-Engine, die sich durch eine daemonlose Architektur und bessere Integration in Systemdienste wie systemd auszeichnet. Im Gegensatz zu Docker benötigt Podman keinen ständig laufenden Hintergrunddienst (Docker Daemon), was zu einer sichereren Umgebung führen kann.

Ein weiteres Highlight von Podman ist die Rootless-Funktionalität. Das bedeutet, dass du Container ohne Root-Rechte starten und verwalten kannst, was die Sicherheit erheblich erhöht.


Unterschiede zwischen Docker und Podman

Bevor wir ins Tutorial einsteigen, lass uns kurz die Hauptunterschiede zwischen Docker und Podman beleuchten:

DockerPodman
Docker benötigt einen Root-Daemon (dockerd).Podman benötigt keinen Daemon.
Standardmäßig Root-Rechte erforderlich.Rootless Container möglich.
Arbeitet mit Docker Compose.Podman kann mit podman-compose arbeiten.
Unterstützung für Swarm und Kubernetes.Integration mit Kubernetes (crun & runc).
Entwickelt von Docker, Inc.Entwickelt von Red Hat und der Open Source Community.

Podman Installation

1. Installation unter Linux (Ubuntu)

Um Podman auf Ubuntu zu installieren, führe folgende Schritte aus:

sudo apt update
sudo apt install podman

2. Installation unter Fedora

Podman ist unter Fedora vorinstalliert. Falls es jedoch fehlt, kannst du es wie folgt installieren:

sudo dnf install podman

3. Installation unter Windows und macOS

Für Windows und macOS kannst du Podman über die Podman-Website oder Homebrew (macOS) installieren.

Für macOS:

brew install podman

Für Windows gibt es spezielle Anleitungen, die das Setup erleichtern.


Grundlegende Podman-Befehle

Die meisten Docker-Befehle funktionieren auch mit Podman, da Podman versucht, eine ähnliche Benutzererfahrung zu bieten. Das bedeutet, dass du die gleiche Syntax verwenden kannst.

Hier einige grundlegende Befehle, die den Einstieg erleichtern:

1. Container starten

Ein einfacher Befehl zum Starten eines Containers ist:

podman run -it alpine

Dieser Befehl lädt das alpine-Image herunter (falls es nicht bereits lokal vorhanden ist) und startet eine interaktive Shell im Container.

2. Container anzeigen

Um eine Liste der laufenden Container anzuzeigen, verwende:

podman ps

Um auch gestoppte Container anzuzeigen, kannst du den Befehl erweitern:

podman ps -a

3. Container stoppen

Um einen laufenden Container zu stoppen, verwende den Befehl:

podman stop <CONTAINER_ID>

4. Container entfernen

Wenn du einen Container löschen möchtest, führe diesen Befehl aus:

podman rm <CONTAINER_ID>

5. Images anzeigen

Um eine Liste der lokal gespeicherten Container-Images anzuzeigen:

podman images

6. Image entfernen

Um ein Image zu entfernen, das du nicht mehr benötigst:

podman rmi <IMAGE_ID>

Erstellen und Verwalten von Containern mit Podman

1. Erstellen eines Containers

Um einen neuen Container zu erstellen, der im Hintergrund läuft, kannst du den Befehl wie folgt ausführen:

podman run -d --name my_container alpine sleep 3600

Dieser Befehl startet einen Container namens my_container, der für 3600 Sekunden (eine Stunde) im Hintergrund läuft.

2. Zugriff auf den Container

Um in einen laufenden Container zu wechseln und eine Shell zu öffnen, kannst du podman exec verwenden:

podman exec -it my_container /bin/sh

3. Container Logs ansehen

Wie auch bei Docker, kannst du die Logs eines Containers anzeigen:

podman logs <CONTAINER_ID>

Rootless Containers mit Podman

Einer der größten Vorteile von Podman ist die Möglichkeit, Rootless Container zu starten. Dies bedeutet, dass der Benutzer keine Administratorrechte benötigt, um Container zu starten und zu verwalten.

Um einen rootlosen Container zu starten, reicht es aus, die normalen Befehle als normaler Benutzer auszuführen, ohne sudo:

podman run -it ubuntu /bin/bash

Mit dieser Funktion erhöhst du die Sicherheit deiner Container-Umgebung erheblich, da keine Root-Rechte auf dem Host-System erforderlich sind.


Podman und Kubernetes

Podman bietet eine native Integration mit Kubernetes. Du kannst deine Podman-Container direkt in Kubernetes-Pods konvertieren:

podman generate kube my_container > my_pod.yaml

Dieser Befehl erstellt eine Kubernetes YAML-Datei aus deinem laufenden Container, die du dann in einem Kubernetes-Cluster verwenden kannst.


Fazit

Podman ist eine mächtige und flexible Alternative zu Docker, insbesondere für Anwender, die auf eine daemonlose und rootlose Umgebung Wert legen. Die Kompatibilität zu Docker-Befehlen erleichtert den Umstieg und durch die Möglichkeit, Container ohne Root-Rechte zu starten, ist Podman in vielen Szenarien sicherer.

Mit diesem Tutorial hast du einen Überblick über die Grundlagen von Podman erhalten. Du kannst damit Container erstellen, verwalten und auch in Kubernetes integrieren. Es gibt noch viele weitere Funktionen, die es zu erkunden gilt, aber dies sollte dir einen soliden Start ermöglichen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert