Podman oder Docker

Frank73

Active member
Hallo zusammen,

während den heißen Nächten habe ich mir ein neues Projekt überlegt, welches ich gerade am realisieren bin.
Aktuell bin ich dabei einen VPS aufzusetzen, auf welchen ich über einen Site to Site Tunnel (Wireguard) von der FB darauf zugreifen kann. Zugriff auf den VPS erfolgt nur über den Tunnel.
Testweise möchte ich vorerst meine Anleitungen von meiner NAS auf den VPS "umziehen", später dann mehr.
Meine Idee ist die, dass bei Ausfall der NAS relativ schnell ein redundantes System außerhalb meiner 4 Räume für die wichtigen Anwendungen (in der Regel alles Docker-Lösungen) zur Verfügung steht. Backups stehen in ausreichender Form zur Verfügung, einen Hardwareausfall habe ich bisher jedoch so nicht bedacht.

Jetzt steht die Überlegung an, soll ich Docker verwenden (nutze ich bisher auf meiner NAS) oder soll ich auf dem VPS Podman installieren. Bei Podman gefällt mir vor allem die Möglichkeit, dass es rootless genutzt werden kann, was auf der Synology so nicht möglich ist. Auch habe ich gelesen, dass auf Grund der Kombatibilität keine Probleme bestehen würden, was ebenfalls für Podman sprechen würde.
Daher meine Frage an die Experten, habt ihr schon Erfahrungen mit Podman gemacht und was würdet ihr auf einem VPS vorziehen; Docker oder Podman?

Ergänzung:
Was meinerseits auch für Podman spricht ist, dass ich auf dem VPS die "ufw" verwende welche Podman berücksichtigt, während Docker diese umgeht. Bei Docker könnte man (wenn ich es richtig verstanden habe) in der compose über Port-Binding dieses Problem jedoch beheben.

Vielen Dank schon mal für euer Input und Feedback!
 
Ich hab mir Podman nur mal angesehen und dann wieder beiseite gelegt. Wenn man sich den alias alias docker=podman in ~/.bash_aliases packt (und danach eine neue Shell aufmacht), dann könntest Du Podman mit den gewohnten Docker Befehlen nutzen. Hier und da sind einige Parameter anders.
Bei Podman gefällt mir vor allem die Möglichkeit, dass es rootless genutzt werden kann
Das geht mit Docker im Rootless mode auch.

Am Ende sind Docker und Podman Komfort-Wrapper um die eigentlich Container Runtimes. Docker hat noch eine zwischenschicht bevor es Container mit der Container Runtime runc (in Go geschrieben) erzeugen lässt. Podman lässt die Container direkt von crun (in C geschrieben) erzeugen. Der Performancevorteil von C ist an der Stelle egal, da nach der Erzeugung die Container Runtime nichts mehr zu tun hat, ausser einen Shim für den Container-Prozess zu erzeugen.
was auf der Synology so nicht möglich ist
Da ist so einiges nicht möglich. Die Docker Version, die der aktuelle Container Manager im Bauch mitbringt, hatte bei Docker schon keinen Support mehr, bevor Synology das erste Paket damit herausgebracht hat. Syno hat ihr Docker dezent verbogen, sodass man es nicht mal eben durch ein Vanilla Docker ersetzen kann.

Bei Docker könnte man (wenn ich es richtig verstanden habe) in der compose über Port-Binding dieses Problem jedoch beheben.
Das hat nichts mit Compose zu tun, sondern damit, dass man Container-Ports auch mit <host-ip>:<host-port>:<container-port> publishen kann. Docker Compose und docker cli sind beide nur Clients für die Docker API vom Backend. Das eine erlaubt dir Yaml-Dateien für die Konfiguration von Ressourcen zu verwenden, dass andere will es als Kommandozeilen-Argument. Es lassen sich beinahe all cli-args in eine Compose-Konfiguration überführen und auch umgekehrt.

Docker und ufw's Wege die Firewall zu konfigurieren sind tatsächlich inkompatibel zueinander.

Was hält Dich davon ab Podman einfach auszuprobieren? Am Endes des Tages sind Container Wegwerf-Instanzen. Dauerhaft zu speichernde Daten liegen in Volumes oder Binds - wenn Du lezteres verwendest kannst Du ohne viel Mühe zwischen Podman und Docker wechseln (man muss ggf. den Owner der Verzeichnisse und Dateien anpassen). Rootless Docker ist etwas weniger komfortabel in der Verwaltung der Netzwerke und der Nutzung der Volumes. Ich würde erwarten, dass es sich bei Podman ähnlich verhalten sollte.

Auch ein Rootfull Docker kann man gut abhärten: userns mapping aktivieren, Dateibasierten docker socket deaktivieren, docker api über tcp und tls zwei Wege Authentifizierung auf Basis von Zertifikaten einsetzen.

Lustigerweise gibt es auch eine podman-compose :) Und Podman kann etwas das Docker nicht kann: Pods laufen lassen. Quasi eine Isolationshülle in der mehrere Container laufen (so wie bei Kubernetes). Es gibt schon szenarien wo das praktisch sein kann. Bspw. Pod mit Webserver ohne https als Container und ein Sidecar Container im selben Pod, der per Localhost mit dem Webserver im anderen Container desselben Pods kommunizieren kann - sowas gibt es bei Docker nicht.
 
Zuletzt bearbeitet:

Letzte Anleitungen

Statistik des Forums

Themen
8.185
Beiträge
80.833
Mitglieder
8.931
Neuestes Mitglied
dapkdapk
Zurück
Oben