Zum Inhalt springen
Home » Docker in Proxmox CT / LCX Container oder VM – Best practices

Docker in Proxmox CT / LCX Container oder VM – Best practices

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.

Kann man Docker in einem Proxmox CT / LXC Container installieren?

Ja man kann Docker in einem Proxmox CT Container installieren.

Kann man Docker in einer Proxmox VM installieren?

Ja Docker kann in einer VM installiert werden.

Welche Risiken ergeben sich bei der Verwendung Privilegierter LXC Container?

Privilegierte Container haben Root zugriff auf den Host / Hypervisor und sind so ein Sicherheitsrisiko.

Was verbraucht weniger Ressourcen: Proxmox CT Container oder VMs?

Proxmox CT / LXC Container verbrauche weniger Ressourcen als vollwertige VMs.

Mastodon