Was sind eigentlich Container?
Ich habe mich ausgiebig im Web informiert und komme zu der Feststellung, dass die Containerisierung eine revolutionäre Technologie ist, die uns in den nächsten Jahren weiterhin intensiv beschäftigen wird. Die Vorteile liegen auf der Hand: Im Vergleich zu virtuellen Maschinen sind Container leichtgewichtig, schnell und ressourcenschonend.
Sie bieten einen neuen Ansatz, Software effizient und plattformunabhängig zu verpacken und bereitzustellen.
Docker-Container
Die Idee hinter Containern ist nicht neu. Schon vor Docker gab es Konzepte wie chroot auf Unix-Systemen, die eine Form von Isolation ermöglichten. Docker hat diesen Ansatz jedoch perfektioniert und so stark vereinfacht, dass er für praktisch jeden Entwickler zugänglich wurde. Als Docker 2013 als Open-Source-Projekt veröffentlicht wurde, begann sich die Landschaft grundlegend zu verändern.
Ich erinnere mich noch gut daran, als ich Docker zum ersten Mal ausprobiert habe. Auf einmal hatte ich eine völlig neue Möglichkeit, Software zu verpacken und zu betreiben. Alles, was ich brauchte, war ein Docker-Container mit bereits vorkonfigurierten Abhängigkeiten und vorinstallierten Anwendungen.
Anstatt zahlreiche Skripte abzuarbeiten, konnte ich meine Anwendung einfach „out of the box“ starten. Natürlich kommt man um Konfiguration nicht komplett herum – aber man muss nicht mehr ständig mit umgebungsspezifischen Problemen kämpfen. Und der Konfigurationsaufwand ist in den meisten Fällen deutlich geringer, als wenn man das System von Grund auf selbst aufsetzen müsste.
Podman als Alternative zu Docker
Da ich derzeit überwiegend auf Servern mit Red Hat Enterprise Linux oder Oracle Linux arbeite, setze ich häufig die Docker-Alternative Podman ein. Die meisten Docker-Befehle funktionieren auch mit Podman, sodass der Umstieg sehr einfach ist.
Der große Unterschied: Podman benötigt keinen zentralen „Daemon“ wie dockerd. Dadurch ist der Ressourcenverbrauch etwas geringer und man erhält mehr Kontrolle über die Container-Laufzeitprozesse.
Um die Container zusätzlich abzusichern, betreibt man Podman-Container typischerweise rootless, also ohne Root-Rechte. Auch ich starte meine Container unter Podman grundsätzlich mit einem Benutzer, der keine administrativen Rechte besitzt.
Wie geht es weiter?
Im nächsten Schritt werden wir gemeinsam Docker Desktop installieren und unsere ersten Container starten – die Reise geht weiter!