Red-Hat-Containerlösung erleichtert die Softwareentwicklung Podman Desktop – Docker-Alternative für Entwickler

Von Thomas Joos Lesedauer: 5 min

Anbieter zum Thema

Podman Desktop ist eine von Red Hat entwickelte Alternative zu Docker, die vor allem für Developer interessant ist. Die Container-Engine ist für den Betrieb von Containern auf lokalen Rechnern ausgelegt und bietet weitere Vorteile.

Mit Podman Desktop können Developer ihre Container-Anwendungen lokal in einer ähnlichen Umgebung betreiben, wie später im produktiven Cluster.
Mit Podman Desktop können Developer ihre Container-Anwendungen lokal in einer ähnlichen Umgebung betreiben, wie später im produktiven Cluster.
(Bild: Podman.io)

Entwicklerinnen und Entwickler, die Anwendungen für Container schreiben, benötigen eine Lösung, mit der sie Container auf dem lokalen Rechner ausführen und testen können. Hier ist Podman Desktop ideal, zumal die Engine auch mit Kubernetes zusammenarbeitet.

Podman ist ein Open-Source-Projekt, das als schlanker und sicherer Ersatz für Docker entwickelt wurde. Es ermöglicht Developern und Admins, Anwendungen und Dienste in Containern auszuführen, ohne dass ein Daemon benötigt wird.

Da das Projekt von Red Hat vorangetrieben wird, ist der Betrieb mit OpenShift folgerichtig ebenfalls möglich, der Einsatz erfolgt komplett ohne Container-Management. Die Administration und das Handling der Engine ist bei beiden Möglichkeiten identisch. Läuft ein Container also lokal, ist er später auch in einem großen Cluster funktionsfähig.

Open Source Container Engine bietet viele Vorteile

Vieles, was Podman Desktop kann, kann Docker auch. Allerdings hat Podman Desktop den Vorteil, dass es vollständig quelloffen ist. Seit Version 1.0 ist die Engine so weit, dass sie auch für Entwicklungsumgebungen produktiv eingesetzt werden kann.

Der größte Vorteil von Podman Desktop ist sicherlich, dass Entwickler die Container-Anwendung lokal in einer ähnlichen Umgebung betreiben können, wie später im produktiven Netzwerk. Dabei spielt es für die Anwendung keine Rolle, ob sie auf einem Entwicklungsrechner oder auf einem großen Cluster installiert ist.

Podman Desktop kann sehr flexibel Produktionsumgebungen lokal nachbilden. Dies gilt auch für Red Hat OpenShift. Podman Desktop wird bereits in HPC-Umgebungen eingesetzt und auch große Unternehmen setzen bereits auf Podman Desktop. In der Automobilindustrie wird Podman eingesetzt, um beispielsweise containerisierte Anwendungen für Steuergeräte bereitzustellen.

Podman bietet eine Reihe weiterer Funktionen, die es von Docker unterscheiden. Dazu gehören:

  • Daemonless-Betrieb: Einer der größten Unterschiede zwischen Docker und Podman ist, dass Podman keinen Daemon benötigt. Docker verwendet einen Client-Server-Ansatz, bei dem der Docker-Client mit dem Docker-Daemon kommuniziert, um Container zu erstellen und zu verwalten. Podman hingegen verwendet einen Daemon-losen Ansatz, bei dem jeder Container in einem separaten Prozess ausgeführt wird. Dies kann die Sicherheit erhöhen und den Ressourcenverbrauch reduzieren.
  • Rootless-Betrieb: Podman kann ohne Root-Rechte ausgeführt werden. Dies ist ein großer Sicherheitsvorteil, da das Risiko von Root-Exploits reduziert wird. Mittlerweile ist Docker aber dazu ebenfalls in der Lage. Podman wurde aber bereits von Anfang an für den Root-losen Betrieb entwickelt und optimiert.
  • Kompatibilität zu Docker: Podman ist kompatibel mit zu Docker CLI und beherrscht die Dockerfile-Syntax. Das bedeutet, dass Entwickler ihre bestehenden Docker-Dateien und -Befehle ohne Änderungen verwenden können, zumindest theoretisch. Das erleichtert den Umstieg von Docker auf Podman erheblich.
  • Unterstützung von Kubernetes: Podman kann Kubernetes-Manifeste direkt ausführen, was es zur idealen Wahl für die Container-Orchestrierung macht. Docker benötigt zusätzliche Tools wie Docker Compose oder Docker Swarm, um eine ähnliche Funktionalität zu bieten.
  • Pod-Konzept: Podman verwendet das Konzept der „Pods", das von Kubernetes stammt. Ein Pod ist eine Gruppe von einem oder mehreren Containern, die gemeinsam geplant und ausgeführt werden. Das kann die Verwaltung von Multi-Container-Anwendungen vereinfachen.

Zusammenfassend lässt sich sagen, dass Podman Desktop eine leistungsfähige und flexible Alternative zu Docker ist. Es bietet eine Reihe von Vorteilen, insbesondere in Bezug auf Sicherheit und Ressourcenverbrauch, und ist gleichzeitig vollständig kompatibel mit bestehenden Docker-Workflows.

Podman mit High Performance Computing und KI/ML

Aufgrund der genannten Vorteile von Podman ist die Open-Source-Lösung im HPC-Bereich beliebt und wird bereits produktiv eingesetzt. Red Hat arbeitet mit dem US-Energieministerium zusammen, um eine neue Generation von HPC-Anwendungen zu entwickeln. Diese Anwendungen sollen in Containern laufen, die mit Kubernetes orchestriert und für verteilte Dateisysteme optimiert sind.

Während Technologien wie Kubernetes, Containerisierung und Blockspeicher bereits weit verbreitet sind, wurden sie in HPC-Umgebungen noch nicht in großem Umfang eingesetzt. Podman ist ein Teil dieser Initiative. In Berkeley arbeitet Red Hat zusammen mit Canon an der Verbesserung von Podman, um die kundenspezifische Entwicklung des National Energy Research Scientific Computing Center zu ersetzen.

Ein Schlüsselaspekt dieser Arbeit, insbesondere in Bezug auf Podman, besteht darin, sicherzustellen, dass die in HPC gewonnenen Erkenntnisse einer breiteren Gemeinschaft zugänglich gemacht werden können. Das könnte nicht nur für die Wissenschaft, sondern auch für Unternehmen, die sich um die Bereitstellung großer paralleler Arbeitslasten wie KI/ML bemühen, weitreichende Auswirkungen haben.

Kann Podman Desktop vollständig Docker ersetzen?

Ob Podman Desktop in Zukunft in der Lage sein wird, Docker zu ersetzen, ist unklar. Das Entwicklungsstadium von Podman Desktop ist noch jung und wenig ausgereift, auch wenn die Engine bereits in vielen Umgebungen eingesetzt wird. Podman und Docker sind Containerization-Tools mit ähnlichem Funktionsumfang. Es gibt jedoch einige Unterschiede, die je nach spezifischen Anforderungen und Kontext zu Nachteilen für Podman führen können.

Erstens ist da die Frage der Kompatibilität. Obwohl Podman als „Drop-in“-Ersatz für Docker entwickelt wurde, gibt es immer noch einige Unterschiede in der Funktionalität und im Verhalten zwischen den beiden Werkzeugen. Dies kann zu Problemen führen, wenn man versucht, Docker-basierte Workflows und Skripte ohne Änderungen auf Podman umzustellen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Zweitens hat Podman im Gegensatz zu Docker keinen eingebauten Daemon. Das führt zu einer schlankeren und sichereren Architektur, kann aber auch zu Kompatibilitätsproblemen mit Tools führen, die speziell für die Kommunikation mit dem Docker-Daemon entwickelt wurden.

Drittens, obwohl Podman die Verwendung von Dockerfile und Docker CLI Befehlen unterstützt, gibt es einige Docker-spezifische Funktionen und Befehle, die Podman nicht unterstützt. Dies kann zu Einschränkungen führen, wenn versucht wird, komplexere Docker-Workflows in Podman abzubilden.

Obwohl Podman an Popularität gewinnt, ist seine Community und Unterstützung durch Dritte im Vergleich zu Docker noch begrenzt. Tatsächlich hat Podman in bestimmten Anwendungsfällen und Umgebungen erhebliche Vorteile, insbesondere wenn Sicherheit und Ressourcenverbrauch eine Rolle spielen. Die Wahl zwischen Podman und Docker sollte daher auf den spezifischen Anforderungen und dem Kontext basieren.

(ID:49621891)