6 Punkte von GN⁺ 2024-01-14 | 1 Kommentare | Auf WhatsApp teilen

Vergleich von Podman und Docker

  • Sowohl Podman als auch Docker ermöglichen das Ausführen, Verwalten und Bereitstellen von Containern auf effiziente und skalierbare Weise.
  • Podman verwendet eine daemonlose Architektur, sodass Benutzer Container direkt verwalten.
  • Podman ist in Systemd integriert und verwaltet so den Lebenszyklus von Containern.
  • Mit Podman Compose, das ähnliche Funktionen wie Docker Compose bietet, lassen sich mehrere Container orchestrieren.
  • In puncto Sicherheit bietet Podman stärkere Standardeinstellungen als Docker.

Podman installieren

  • Podman läuft auf macOS, Windows und den wichtigsten Linux-Distributionen.
  • Unter Linux arbeitet es nativ, unter Windows und macOS über eine virtuelle Maschine.
  • Die Installation erfolgt mit den Befehlen sudo apt update und sudo apt install podman.

Den ersten Container ausführen

  • Mit dem Image "Hello World!" wird geprüft, ob die Podman-Installation korrekt funktioniert.
  • Da Podman dem OCI-Standard (Open Container Initiative) folgt, ist es mit Docker-Images kompatibel.

Kurze Image-Namen verwenden

  • Podman empfiehlt, beim Referenzieren von Images den vollständigen Namen zu verwenden.
  • Werden kurze Namen verwendet, prüft Podman anhand der Konfigurationsdatei den kanonischen Image-Namen.

Private Image-Registries verwenden

  • Podman kann wie Docker mit privaten Registries verwendet werden.
  • Mit einem Docker-Hub-Konto lässt sich dem Beispiel zur Einrichtung einer privaten Registry folgen.

Mehrere Container orchestrieren

  • Mit Podman Compose lassen sich mehrere Container orchestrieren.
  • Podman Compose bietet ähnliche Funktionen wie Docker Compose und ist mit bestehenden docker-compose.yml-Dateien kompatibel.

GN⁺-Meinung:

  • Podman ist eine Container-Engine, die im Vergleich zu Docker schneller ist und in puncto Sicherheit stärkere Standardeinstellungen bietet. Das macht sie zu einer attraktiven Alternative für Entwickler und Systemadministratoren.
  • Die daemonlose Architektur von Podman erleichtert Security-Audit-Trails und ermöglicht die Identifizierung von Benutzern im Fall eines Sicherheitsvorfalls.
  • Die Kompatibilität zwischen Podman und Docker erleichtert bestehenden Docker-Nutzern den Umstieg auf Podman. Das ist nützlich für Organisationen, die Sicherheit und Performance verbessern möchten, ohne ihre bestehende Infrastruktur und ihre Workflows aufzugeben.

1 Kommentare

 
GN⁺ 2024-01-14
Hacker-News-Kommentare
  • Podman und systemd

    • Podman war gut, als es systemd-Unit-Dateien unterstützte. Container und Pods konnten automatisch gestartet und aktualisiert werden.
    • Mit der Bevorzugung von Quadlet wurde diese Funktion jedoch entfernt. Jetzt sind einzelne Container per Unit-Datei möglich, für Pods ist aber eine Kubernetes-Cluster-Definition nötig.
    • Anders als bei Docker arbeiten die Container von Podman gemäß den SELinux-Definitionen, wodurch wiederholt Probleme auftreten, auf gemappte Verzeichnisse zuzugreifen.
    • Es gibt Verwirrung darüber, ob man Podman verwenden sollte, Kubernetes verwenden sollte oder statt an logischen Orten dedizierte Verzeichnisse anlegen sollte.
  • Die Netzwerkkompatibilität von Podman

    • Einer der größten Vorteile von Podman ist, dass es im Gegensatz zu Docker die Netzwerkkonfiguration nicht kaputtmacht.
    • Mit Docker war der Betrieb einer Bridge zusammen mit KVM-VMs ein Albtraum, aber Podman funktioniert standardmäßig gut.
    • Es gab auch Probleme damit, dass VPNs durch Docker beschädigt oder unterbrochen wurden, aber die Art, wie Podman Networking handhabt, stört bisher keine anderen Aufgaben.
  • Die wachsende Popularität von Podman

    • Viele Tools setzen voraus, dass die Gruppe sudo docker hinzugefügt wird, aber bei sicherheitsbewussten Docker-Setups führt das zu Problemen.
    • Podman kann ohne Root-Rechte verwendet werden, was aus Sicherheitssicht positiv ist.
  • Erfahrungen eines RHEL-Ingenieurs mit Podman

    • Als zertifizierter RHEL-Ingenieur nutze ich Podman gern für meine persönliche Container-Nutzung.
    • Für Entwickler verwende ich aber weiterhin Docker, weil es nichts gibt, das die Einfachheit von Docker Compose ersetzt.
    • In CI-Pipelines verwende ich Buildah, aber für Entwickler ist Docker Compose weiterhin dominant.
  • Sicherheitslücke bei Docker und UFW

    • Ich wäre durch die Sicherheitslücke von Docker und UFW beinahe betroffen gewesen.
  • Die Bedeutung rootloser Container und isolierter Namespaces

    • Rootlose Container und isolierte Namespaces sind wichtige Sicherheitsfunktionen.
    • Auch mit Docker kann man rootlos arbeiten, und die Einrichtung ist nicht kompliziert.
    • Ein Vorteil dabei zu bleiben, Docker zu nutzen, ist die bessere Zugänglichkeit: mehr Community, mehr Blogs, die breite Verfügbarkeit von Docker-Compose-Konfigurationen und Kollegen, die wissen, wie man es benutzt.
    • Letztlich führen sowohl Podman als auch Docker Prozesse in isolierten Namespaces auf dem Host aus.
  • Podman, Red Hats Docker-Alternative

    • Warum Red Hat eine Docker-Alternative entwickelt hat, ist nicht ganz klar, aber Podman gefällt mir.
    • Podman kann fast alles, was Docker kann, und bietet entweder mehr Funktionen (z. B. Pods) oder geht manche Dinge besser an (z. B. den daemonlosen Prozess zur Container-Erstellung).
    • Für Entwickler könnte Docker Compose das Hauptproblem sein, aber wenn man einfache Compose-Dateien nutzt, gibt es das Skript podman-compose, das mit der Docker-Compose-Spezifikation kompatibel sein will.
    • Es ist auch möglich, Podman als Backend für Docker Compose zu verwenden. Stand 2024 gibt es zumindest auf Linux-Rechnern offenbar keinen Grund, Docker zu verwenden. Wie Podman auf macOS oder Windows funktioniert, ist allerdings unklar.
  • Podmans sicherheitsorientierter Ansatz

    • Mir gefallen Podmans sicherheitsorientierter Ansatz und einige seiner Entscheidungen. Standardmäßig bietet es sichere Voreinstellungen und ist mit Docker Compose kompatibel.
    • Wenn Podman genug Popularität gewinnt, könnte es bei Befehlen und yml einen eigenen Weg einschlagen. Im Moment wirkt es wie ein Tool, das von Docker- und Docker-Compose-Dateiformaten "abhängt".
    • Podman braucht eine Alternative zu Swarm, die den Mangel an Orchestrierung ohne k8s ausgleichen kann. Das könnte eine einfache und vernünftige Möglichkeit bieten, Container in kleinerem Maßstab aus guter Sicherheitsperspektive zu betreiben.
  • Probleme bei der Nutzung von Podman

    • Podman ist großartig, aber als ich begann, es als Docker-Ersatz zu nutzen, hatte ich Probleme mit UID- und GID-Mapping, SELINUX-Richtlinien und fehlenden DNS-Einstellungen.
    • Um Probleme zu beheben, habe ich mehrfach Systemmigrationen ausgeführt und dabei die Konfiguration beschädigt. Es gibt komplexe Probleme rund um Sicherheits-ACLs, ID-Mapping und Labels.
    • Mit dem Ergebnis bin ich zufrieden, aber es war keine Lösung, die wie Docker "einfach funktioniert". Es ist möglich, dass es sich verbessert hat, seit ich damit angefangen habe.
  • Podman und Apple Silicon

    • Anders als Docker kann Podman auf Apple Silicon keine x86-Images über Rosetta ausführen.
    • QEMU ist für die praktische Nutzung zu langsam.