Podman statt Docker: Rootless Container im Serverbetrieb

Podman ist eine moderne Alternative zu Docker, die besonders für den Serverbetrieb interessant ist, da sie rootless Container unterstützt und eine höhere Sicherheit bietet. Anders als Docker benötigt Podman keinen zentralen Daemon, wodurch die Verwaltung von Containern direkt über Benutzerprozesse erfolgt. In diesem Tutorial zeigen wir, wie Podman installiert, konfiguriert und im produktiven Umfeld effizient genutzt werden kann.

Vorteile von Podman gegenüber Docker

  • Rootless Betrieb: Container laufen ohne Root-Rechte, was die Angriffsfläche reduziert.
  • Daemonless: Kein zentraler Hintergrundprozess nötig, Container werden direkt über Benutzerbefehle gesteuert.
  • Docker-Kompatibilität: Viele Docker-CLI-Befehle funktionieren auch mit Podman.
  • Kubernetes-Integration: Podman kann YAML-Dateien für Kubernetes erzeugen und nutzen.
  • Sicherheitsfeatures: Unterstützt SELinux, user namespaces und seccomp-Profile out-of-the-box.

Podman installieren

Installation auf Debian/Ubuntu

# Repository aktualisieren
sudo apt update

Podman installieren

sudo apt install podman -y

Version prüfen

podman --version

Installation auf RHEL/CentOS/AlmaLinux/Rocky

# EPEL Repository aktivieren (falls nötig)
sudo dnf install epel-release -y

Podman installieren

sudo dnf install podman -y

Version prüfen

podman --version

Rootless Container einrichten

Podman unterstützt rootless Container direkt für normale Benutzer. Die Benutzer müssen keine sudo-Rechte besitzen.

# Rootless Container starten
podman run -d --name nginx-rootless -p 8080:80 nginx:latest

Container prüfen

podman ps

Wichtige Hinweise

  • Port-Forwarding über <1024 Ports erfordert Root. Für Rootless Betrieb Ports >1024 verwenden.
  • Volumes können ebenfalls rootless genutzt werden, achten Sie auf korrekte Benutzerrechte.

Container Management mit Podman

Podman bietet eine vollständige CLI zur Verwaltung von Containern, Images und Netzwerken.

# Container stoppen
podman stop 

Container löschen

podman rm

Images anzeigen

podman images

Image löschen

podman rmi

Netzwerke konfigurieren

Podman nutzt CNI-Netzwerke. Standardmäßig wird ein Rootless-Netzwerk erstellt.

# Netzwerke anzeigen
podman network ls

Eigenes Netzwerk erstellen

podman network create mynet

Container einem Netzwerk zuordnen

podman run -d --name web --network mynet nginx

Volumes und Persistenz

Um Daten auch nach dem Stoppen von Containern zu behalten, sollten Volumes genutzt werden.

# Volume erstellen
podman volume create dbdata

Container mit Volume starten

podman run -d --name db -v dbdata:/var/lib/mysql mysql:8.0

Docker-Kompatibilität

Viele Docker-Befehle können direkt durch Podman ersetzt werden. Um Docker-Skripte zu verwenden, kann ein Alias gesetzt werden:

# Alias für Docker-Kommandos
alias docker=podman

Podman Compose nutzen

Für Multi-Container-Anwendungen bietet Podman Compose ähnliche Funktionalität wie Docker Compose.

# Podman Compose installieren
sudo apt install podman-compose

Compose Datei starten

podman-compose up -d

Logs prüfen

podman-compose logs -f

Sicherheitsaspekte

  • Rootless Betrieb erhöht die Sicherheit, jedoch sollten SELinux/AppArmor aktiviert bleiben.
  • Secrets und Passwörter nicht in der Compose-Datei ablegen, sondern über Environment-Variablen oder Podman Secrets verwalten.
  • Regelmäßige Updates für Podman und Basis-Images durchführen, um Sicherheitslücken zu vermeiden.

Fehlerbehebung

  • Netzwerkprobleme: podman network inspect <network>
  • Volume-Berechtigungen: Prüfen, ob der Benutzer Schreibrechte besitzt
  • Container startet nicht: Logs mit podman logs <container> prüfen
  • Portkonflikte vermeiden, besonders im Rootless Betrieb Ports >1024 wählen

CI/CD Integration

Podman eignet sich gut für automatisierte Pipelines:

# Beispiel CI/CD Schritt
podman build -t myapp:latest .
podman push myregistry.local/myapp:latest

Fazit

Podman ermöglicht die Nutzung von Containern ohne Root-Rechte und erhöht dadurch die Sicherheit im Serverbetrieb. Durch die Kompatibilität zu Docker, die einfache Netzwerkkonfiguration und das flexible Volume-Management eignet sich Podman hervorragend für produktive Linux-Server-Setups und DevOps-Umgebungen.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles