6 Historische Entwicklung

6.1 Die frühen Jahre der Containerisierung

Containerisierung ist keine moderne Erfindung. Lange bevor Docker auftrat, existierten bereits ausgereifte Konzepte wie FreeBSD Jails, Solaris Zones oder LXC. Gemeinsam war ihnen, dass sie isolierte Prozessräume bereitstellten – basierend auf Mechanismen, die das Linux-Kernel-Ökosystem bis heute prägen: Namespaces, Cgroups, Chroots und Capabilities.

Diese frühen Systeme litten jedoch unter einer entscheidenden Schwäche: Sie waren distributionsspezifisch, oft umständlich zu konfigurieren und ohne kohärente Build- und Distributionswerkzeuge. Es gab keine einheitliche Vorstellung davon, was ein Container-Image ist, keine gemeinsame Runtime-Spezifikation und vor allem keine durchgängige Werkzeugkette.

Erst mit Docker wurde Containerisierung „benutzbar“. Die Idee eines Images, das überall laufen kann, war nicht neu – aber erstmals wurde sie praktikabel.


6.2 Docker und der Wendepunkt

Docker adressierte ein konkretes Problem: Anwendungen sollten reproduzierbar, portabel und unabhängig von der lokalen Umgebung auszuführen sein. Docker kombinierte mehrere Funktionen in einem Werkzeug:

Dieses Bündeln war ein Segen für die frühe Phase. Aber es führte dazu, dass Docker sehr schnell sehr viel Verantwortung übernahm. Der Daemon lief als root, der Docker-Socket wurde zum Sicherheitsrisiko, und die API war proprietär. Mit dem Aufstieg von Kubernetes wurde klar, dass ein einzelner monolithischer Daemon nicht die langfristige Basis für Containerlandschaften sein kann – erst recht nicht in Multi-User-Systemen oder sicherheitssensitiven Umgebungen.

Die Community brauchte Standards. Und Modularität.


6.3 Die Gründung der OCI

2015 wurde die Open Container Initiative (OCI) gegründet – ein Konsortium, das Containertechnologien unabhängig von einzelnen Herstellern definieren sollte. Die Ziele waren klar:

Die OCI brachte Ordnung in eine zuvor weitgehend proprietäre Landschaft. Sie bildete die Grundlage dafür, dass Container-Ökosysteme heute aus vielen kleinen Werkzeugen bestehen können, die alle dieselben Standards sprechen.


6.4 Der Red-Hat-Weg: Modularisierung statt Monolith

Red Hat erkannte früh, dass Kubernetes nur dann skaliert, wenn die Containerlaufzeit aus klar getrennten Bausteinen besteht. Die Antwort war eine modulare Werkzeugfamilie:

Diese Werkzeuge sind nicht „Docker-Alternativen“, sondern eine Aufspaltung des Funktionsumfangs in klar abgegrenzte Prozesse. Sie folgen der Unix-Philosophie: Ein Werkzeug pro Aufgabe, nicht ein einziges Werkzeug für alles.

Diese Architektur machte es möglich, Kubernetes-Distributionen wie OpenShift vollständig auf OCI-konforme Runtimes zu stützen – ohne Abhängigkeit von einem zentralen Daemon.


6.5 Die Entstehung von Podman

Podman entstand aus einem klar definierten Problemraum:

Die erste Podman-Version war minimalistisch – eine CLI, die Container direkt über eine Runtime startet, ohne Daemon, ohne persistenten Steuerprozess. Der Name („Pod Manager“) verweist darauf, dass Podman von Beginn an das Pod-Konzept unterstützte – Gruppierungen von Containern, die gemeinsam betreut werden.

Im Verlauf der Entwicklung kamen Features hinzu, die in klassischen Docker-Setups nur mit Zusatzwerkzeugen realisierbar waren: Rootless-Betrieb, optimierte Security-Defaults, flexiblere Runtimes wie crun und enge Verzahnung mit Sicherheitsmechanismen wie SELinux.


6.6 Wechselwirkungen mit Kubernetes

Parallel zu Podman entstand CRI-O, eine Runtime speziell für Kubernetes. Beide Projekte teilen Bibliotheken, Architekturprinzipien und Code. Die Grundidee: Dieselben Images, dieselben Laufzeitmechanismen – einmal als Entwicklerwerkzeug (Podman), einmal als Clusterlaufzeit (CRI-O).

Die grobe Architektur:

Dadurch lässt sich lokale Entwicklung mit Podman und Betrieb im Cluster nahezu identisch gestalten – ein Vorteil für jede Form von containerisiertem Deployment, unabhängig von der Art der Anwendung.


6.7 Netavark und die zweite Entwicklungsphase

Die Einführung von Netavark – einem neuen, eigenständigen Netzwerkstack – markiert eine zentrale Weiterentwicklung. CNI war lange der Standard, ist aber eigentlich für Orchestrierung gebaut und weniger für daemonlose Einzelhost-Runtimes. Netavark löst dieses Spannungsfeld durch:

Zusammen mit Aardvark (DNS-Komponente) entstand ein Netzwerkmodell, das besser zur Architektur von Podman passt.


6.8 Ein Ökosystem im Wandel

Die historische Entwicklung von Podman ist nicht isoliert zu betrachten. Sie ist das Ergebnis eines gesamten Ökosystemwechsels:

Podman ist in diesem Wandel ein zentraler Baustein: kein Solitär, sondern ein Werkzeug, das bewusst im Umfeld der OCI-Spezifikationen, CRI-O und moderner Containerarchitekturen steht.