Docker vs. virtuelle Maschine für Jellyfin: Welche Bereitstellungsoption passt?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Docker eignet sich für Jellyfin, wenn Sie einen schlanken Linux-Dienst mit einfachen persistenten Mounts und direktem Zugriff auf Hostgeräte wünschen; eine virtuelle Maschine ist die bessere Wahl, wenn eine unabhängige Kontrolle über das Gastbetriebssystem, eine stärkere Kernel-Isolierung oder ein Lifecycle-Management auf Hypervisor-Ebene wichtiger ist. Die beiden Optionen sind keine vollkommenen Gegensätze, da Docker auch innerhalb einer VM ausgeführt werden kann. Für ein Virtualisierungs-First-Heimlabor ist dies oft die sauberste dritte Option.

Die Entscheidung sollte sich an der tatsächlich benötigten Hardware und dem Wiederherstellungsweg orientieren, insbesondere an GPU-Beschleunigung und Medienspeicher, statt an der pauschalen Annahme, Container seien immer schneller oder VMs immer sicherer.

Beginnen Sie mit der tatsächlich benötigten Isolationsgrenze

Ein Docker-Container verwendet den Kernel des Linux-Hosts gemeinsam mit dem Host, isoliert jedoch Prozesse, Dateisysteme, Netzwerke und andere Namespaces. Eine VM verwendet hinter einem Hypervisor einen eigenen Gast-Kernel. Dadurch schafft eine VM eine stärkere Betriebssystemgrenze, erfordert aber auch ein Gastbetriebssystem, das gepatcht, gesichert und gestartet werden muss und dem Arbeitsspeicher und Speicherplatz zugewiesen werden müssen.

Wenn Jellyfin als stabiler Linux-Dienst auf einem dedizierten oder anwendungsorientierten Host läuft, reicht die Container-Grenze normalerweise aus. Wenn der Host eine Experimentierplattform ist, Sie eine andere Linux-Distribution benötigen oder Jellyfin-Änderungen vom Host-Kernel und Paketsatz isolieren möchten, bietet die VM-Grenze einen größeren praktischen Nutzen.

GPU-Zugriff ist die erste praktische Kompatibilitätshürde

Unter Linux kann Docker Jellyfin Zugriff auf Rendergeräte wie /dev/dri gewähren und den Treiber-Stack des Hosts verwenden. Die Jellyfin-Anleitung für Container dokumentiert die Gerätezuordnung für Hardwarebeschleunigung und weist außerdem darauf hin, dass containerisiertes Jellyfin unter Windows oder macOS kein unterstützter Weg für hardwarebeschleunigtes Transkodieren ist.

Eine VM benötigt, dass der Hypervisor einen virtuellen oder durchgereichten GPU-Pfad bereitstellt. Bei einer vollständigen Geräte-Durchreichung kann der Beschleuniger exklusiv an diesen Gast gebunden werden. Dies kann bei einer Trennung der Treiber oder einer dedizierten GPU die bessere Lösung sein, erhöht jedoch die Abhängigkeiten bei Einrichtung und Wiederherstellung.

Der Vergleich von ZimaSpace zwischen gerätebasiertem Zugriff im Container und Passthrough in der VM zeigt dieselbe grundlegende Unterscheidung: Gemeinsam genutzte Gerätepfade des Hosts und der exklusive Besitz durch den Gast lösen unterschiedliche Probleme bei der Geräteisolierung.

Die Speicherzuordnung ist in Docker einfacher, bis die VM die Datenebene übernimmt

Docker funktioniert reibungslos, wenn Jellyfin-Konfiguration und Cache als persistente Hostpfade oder Volumes vorhanden sind und Medien von lokalen Datenträgern oder einer vom Betriebssystem eingebundenen Freigabe per Bind-Mount eingebunden werden. Der Host sieht den Speicher zuerst; der Container erhält nur die benötigten Pfade.

Entscheiden Sie bei einer VM, ob Medien über virtuelle Laufwerke, die direkte Durchreichung eines Datenträgers oder Controllers oder über eine SMB-/NFS-Freigabe innerhalb des Gasts eingebunden werden. Eine VM kann den gesamten Jellyfin-Stack als einen portablen Gast kapseln. Werden jedoch Terabytes an Medien an ein virtuelles Laufwerks-Image gebunden, können Sicherung und Migration zu einem deutlich größeren Vorgang werden als nötig.

Vergleichen Sie Umfang von Sicherung und Rollback statt nur Snapshot-Schaltflächen

Docker begünstigt kleine Sicherungseinheiten: Compose oder eine andere Bereitstellungsdefinition plus der persistente Jellyfin-Zustand. Erstellen Sie den Container neu, binden Sie die Medien erneut ein, und die Anwendung kann zurückkehren, ohne die wegwerfbare Laufzeitschicht zu erhalten.

Ein VM-Snapshot kann den Gastzustand bequem erfassen, ist aber nicht automatisch eine vollständige Sicherung externer Medien oder eine konsistente langfristige Datenbanksicherung. Der Vorteil liegt im Betrieb, wenn Ihr vorhandener Hypervisor Sicherung, Replikation und Wiederherstellungstests für Gäste bereits zuverlässig verwaltet. Andernfalls fügt die VM eine weitere wiederherzustellende Ebene hinzu.

Betrachten Sie den Overhead als Entscheidungshilfe, nicht als Hauptkriterium

Container verursachen normalerweise weniger Speicher- und Platzbedarf, da sie kein weiteres universelles Gastbetriebssystem starten. Eine VM benötigt RAM für den Gast-Kernel und die Dienste sowie virtuelle Laufwerke für das Betriebssystem. Bei einem kleinen Server, der ständig läuft, kann dieser Unterschied relevant sein. Bei einem Host mit ausreichend RAM kann er im Vergleich zu den Anforderungen an GPU, Speicher und Wartung jedoch vernachlässigbar sein.

Wählen Sie Docker nicht ausschließlich wegen der Benchmark-Effizienz, wenn eine VM eine echte Isolations- oder Treiberanforderung erfüllt. Wählen Sie umgekehrt keine VM allein aus „Sicherheitsgründen“, wenn sie lediglich dieselben nicht verwalteten Mounts und Zugangsdaten in ein weiteres Betriebssystem einbettet.

Wählen Sie Docker, eine VM oder den dritten Weg anhand der Rolle Ihres Hosts

Docker ist die bessere Wahl, wenn der Host unter Linux läuft, Sie einen geringen Overhead wünschen, persistente Pfade einfach dokumentiert werden können und die benötigte GPU zuverlässig zugeordnet werden kann. Eine VM ist die bessere Wahl, wenn Jellyfin ein unabhängiges Betriebssystem, eine stärkere Kernel-Trennung oder ein vom Hypervisor verwaltetes Lifecycle-Management und Geräteeigentum benötigt.

Docker innerhalb einer Linux-VM ist die bessere Wahl, wenn Ihr Heimlabor bereits auf Virtualisierung ausgerichtet ist, Sie aber weiterhin eine containerbasierte Anwendungsbereitstellung innerhalb eines verschiebbaren Gasts wünschen. Die zusätzliche Ebene ist nur dann gerechtfertigt, wenn die VM-Grenze eine konkrete Aufgabe erfüllt. Andernfalls bedeutet sie zusätzliche Komplexität ohne neue Funktion.

Führen Sie vor der Entscheidung eine echte Hardware-Transkodierung durch, starten Sie die Bereitstellung neu und stellen Sie den persistenten Zustand auf einem sauberen Ziel wieder her. Der Weg, der diese Tests mit dem geringsten betrieblichen Aufwand besteht, ist für diesen Host die bessere Jellyfin-Bereitstellung.

Produktvergleiche

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.