Docker in Proxmox zu betreiben ist eine der häufigsten Fragen im Homelab, denn der Hypervisor kennt Docker als Technologie gar nicht direkt. Proxmox bietet von Haus aus zwei Arten der Virtualisierung: LXC-Container (Proxmox CT) und vollwertige KVM-VMs. Docker läuft in beiden Varianten, doch nicht jede ist gleich gut geeignet. In diesem Guide klären wir, ob du deinen Docker-Host besser als LXC-Container oder als virtuelle Maschine aufsetzt, und welche Best Practices sich in der Praxis bewährt haben.
LXC-Container und KVM-VM: der grundlegende Unterschied
Bevor wir entscheiden, wo Docker am besten läuft, lohnt ein Blick auf die beiden Virtualisierungsarten, die Proxmox mitbringt. Sie unterscheiden sich grundlegend in der Art, wie sie den Host teilen und wie stark sie isoliert sind.
- LXC-Container (Proxmox CT): Leichtgewichtige, schnelle und ressourcenschonende Virtualisierung. Ideal für skalierbare Anwendungen und Umgebungen, die auf derselben Kernel-Basis aufbauen.
- KVM-VMs: Vollständige, isolierte Betriebssysteme mit stärkerer Trennung vom Host und Unterstützung für verschiedene Betriebssysteme. Ideal für sicherheitskritische und heterogene Umgebungen.
LXC-Container sind ressourcenschonender als vollwertige VMs, weil sie sich den Kernel mit dem Host, also dem Proxmox-Server selbst, teilen. Genau daraus ergeben sich aber auch einige Einschränkungen: Möchte man Features wie NFS, CIFS oder GPU-Passthrough nutzen, muss der CT-Container privilegiert erstellt werden. Wie du überhaupt einen Container anlegst, zeigt unsere Anleitung zum Erstellen eines Proxmox-LXC-Containers.
Das Risiko privilegierter Container
Ein privilegierter Container hat Root-Rechte, die bis auf den Host selbst durchgreifen. Gelingt es einem Angreifer, in einen solchen CT einzudringen, ist es ein Leichtes, den gesamten Host zu kompromittieren. Deshalb sollten privilegierte LXC-/CT-Container nur in absoluten Ausnahmefällen eingesetzt werden. Für alles Weitere gilt: unprivilegiert ist die sicherere Standardeinstellung.
Docker in Proxmox: CT oder VM als Host?
Kommen wir zur Kernfrage. Im Hinblick auf Flexibilität und Sicherheit gewinnt eindeutig die VM. Eine KVM-VM ist deutlich besser vom Host isoliert als ein CT-Container, kann volle Root-Rechte innerhalb ihrer eigenen Grenzen nutzen, unterstützt Features wie GPU-Passthrough und ermöglicht die Live-Migration. Auch die offizielle Proxmox-Dokumentation empfiehlt, Docker-Hosts als VM umzusetzen.
Was ist eine Live-Migration?
Live-Migration ist der Prozess, bei dem eine laufende virtuelle Maschine von einem physischen Host zu einem anderen verschoben wird, ohne dass der Betrieb der VM unterbrochen wird. So lassen sich Wartungsarbeiten durchführen oder Lasten besser verteilen, ohne dass Nutzer eine Ausfallzeit bemerken. Die VM bleibt während des gesamten Vorgangs aktiv und erreichbar, was eine hohe Verfügbarkeit und minimale Betriebsunterbrechungen gewährleistet.
Wer Anwendungscontainer wie Docker-Images betreiben möchte, sollte diese laut Proxmox-Dokumentation innerhalb einer QEMU-VM ausführen. Das vereint die Vorteile der Anwendungs-Containerisierung mit der starken Isolation vom Host und der Fähigkeit zur Live-Migration, die mit Containern sonst nicht möglich ist.
Sinngemäß nach: Proxmox Container Toolkit, offizielle Proxmox-Dokumentation
Während man Docker durchaus in einem Proxmox-CT-Container nutzen kann und das in einigen Anwendungsfällen auch Sinn ergibt, sollte man im Zweifel lieber eine VM verwenden. Der geringe Overhead einer schlanken Linux-VM wiegt die gewonnene Sicherheit und Flexibilität in fast allen Szenarien mehr als auf.
Wann ein LXC-Container trotzdem sinnvoll ist
Es gibt Situationen, in denen der Container die pragmatischere Wahl ist: In sehr ressourcenarmen Umgebungen, bei einzelnen, unkritischen Diensten oder wenn du bewusst maximale Dichte auf wenig Hardware erreichen willst, kann Docker im unprivilegierten LXC eine akzeptable Lösung sein. Wichtig ist dann, den Container sauber zu konfigurieren und nach Möglichkeit auf privilegierten Betrieb zu verzichten.
Best Practices für den Docker-Host in Proxmox
- Standardmäßig eine VM verwenden: Für produktive oder sicherheitsrelevante Docker-Workloads ist die KVM-VM die empfohlene Variante.
- Schlanke Basis wählen: Eine minimale Debian- oder Ubuntu-Server-VM hält den Overhead klein und die Angriffsfläche gering.
- Container automatisch neu starten: Sorge mit einer passenden Docker-Restart-Policy dafür, dass deine Container nach einem Neustart der VM zuverlässig wieder hochfahren.
- Updates automatisieren: Halte deine Images aktuell, etwa indem du Docker-Container automatisch mit Watchtower aktualisierst.
- Privilegierte Container meiden: Nutze CT-Container nur unprivilegiert und vergib erhöhte Rechte ausschließlich, wenn es keine Alternative gibt.
Fazit
Docker läuft in Proxmox sowohl im LXC-Container als auch in der VM, doch für die meisten Setups ist die VM die bessere Wahl. Sie bietet stärkere Isolation, mehr Flexibilität und die Möglichkeit zur Live-Migration, während der zusätzliche Ressourcenbedarf im Homelab kaum ins Gewicht fällt. Nur wenn Ressourcen knapp sind und die Dienste unkritisch bleiben, ist ein unprivilegierter LXC-Container eine vertretbare Alternative. Wer auf Nummer sicher gehen will, setzt seinen Docker-Host als schlanke VM auf.
Häufige Fragen (FAQ)
Kann man Docker in einem Proxmox-CT-/LXC-Container installieren?
Ja, Docker lässt sich in einem Proxmox-CT-Container installieren und betreiben. In vielen Fällen ist eine VM aber die robustere und sicherere Wahl.
Kann man Docker in einer Proxmox-VM installieren?
Ja, Docker kann problemlos in einer KVM-VM installiert werden. Das ist die von der Proxmox-Dokumentation empfohlene Variante für Anwendungscontainer.
Welche Risiken ergeben sich bei privilegierten LXC-Containern?
Privilegierte Container haben Root-Zugriff, der bis auf den Host beziehungsweise Hypervisor durchgreift, und stellen damit ein Sicherheitsrisiko dar. Sie sollten nur in Ausnahmefällen eingesetzt werden.
Was verbraucht weniger Ressourcen: CT-Container oder VM?
Proxmox-CT-/LXC-Container verbrauchen weniger Ressourcen als vollwertige VMs, da sie sich den Kernel mit dem Host teilen. Der Unterschied fällt bei einer schlanken VM im Homelab jedoch meist gering aus.
Warum unterstützt Proxmox Docker nicht direkt?
Proxmox ist ein Hypervisor für System-Virtualisierung mit LXC und KVM, nicht für Anwendungs-Container. Docker wird daher innerhalb eines Gastsystems, also in einem LXC-Container oder einer VM, betrieben.
Welche Variante ist die beste Wahl für einen Docker-Host?
In den meisten Fällen die VM. Sie bietet stärkere Isolation, GPU-Passthrough und Live-Migration. Ein unprivilegierter LXC-Container ist nur bei sehr knappen Ressourcen und unkritischen Diensten eine sinnvolle Alternative.
