Der Hypervisor Proxmox unterstützt von Haus aus zwei arten der Virtualisierung: Proxmox CT bzw. LXC (Linux Container) und KVM (Kernel-based Virtual Machine) VMs. Docker direkt wird nicht unterstützt.
- LXC Container: 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 Isolation und Unterstützung für verschiedene Betriebssysteme, ideal für sicherheitskritische und heterogene Umgebungen.
LXC Container sind Ressourcenschonender als vollwertige VMs da sich sich den Kernel mit dem Host, also dem Proxmox Server selber teilen. Das bringt aber auch einige Probleme mit sich: Möchte man Features wie NFS, CIFS oder GPU passthrough nutzten muss der CT Container Privilegiert erstellt werden.
Damit hat der Container Root rechte, auch auf dem Host selber. Kann ein Eindringling in den CT eindringen ist es ein leichtes so den ganzen Host zu kompromittieren. Deswegen sollten Privilegierte LXC / CT Container nur ins absoluten Ausnamefällen eingesetzt werden.
CT oder VM als Docker host?
Im Aspekt der Flexibilität und der Sicherheit gewinnt eindeutig die VM. Die KVM VM ist deutlich besser vom Host Isoliert als die CT Container, kann dabei volle Root Rechte haben, Features wie GPU Passthrought nutzten und unterstützt so 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 (VM) von einem physischen Host zu einem anderen verschoben wird, ohne dass der Betrieb der VM unterbrochen wird. Dies ermöglicht es, Wartungsarbeiten durchzuführen oder Lasten besser zu verteilen, ohne dass die Benutzer, die auf die Dienste der VM zugreifen, eine Ausfallzeit bemerken. Die VM bleibt während des gesamten Vorgangs aktiv und erreichbar, was eine hohe Verfügbarkeit und minimale Betriebsunterbrechungen gewährleistet.
If you want to run application containers, for example, Docker images, it is recommended that you run them inside a Proxmox QEMU VM. This will give you all the advantages of application containerization, while also providing the benefits that VMs offer, such as strong isolation from the host and the ability to live-migrate, which otherwise isn’t possible with containers.
Proxmox Dokumentation: 11. Proxmox Container Toolkit
Während man Docker durchaus in Proxmox CT Container nutzten kann und das in einigen Anwendungsfällen auch sinn ergibt, sollte man generell lieber eine VM verwenden.
Ja man kann Docker in einem Proxmox CT Container installieren.
Ja Docker kann in einer VM installiert werden.
Proxmox CT / LXC Container verbrauche weniger Ressourcen als vollwertige VMs.