Zum Inhalt springen
Alle Systeme betriebsbereitStatusLooking GlassGlossar
IT-Check →
← Zurück zur Übersicht Virtualisierung

LXC, VM oder Docker auf Proxmox: die Entscheidungslogik

Proxmox VE stellt für jeden Dienst dieselbe Frage: Container mit geteiltem Kernel, virtuelle Maschine mit eigenem Kernel, oder Docker in einer VM. Die Antwort entscheidet über Live-Migration, Sicherungsverhalten und darüber, was ein Kernel-Exploit im schlimmsten Fall erreicht. Wir zeigen, wonach wir entscheiden, und wo die Dokumentation deutlicher ist als der Forums-Konsens.

Kategorie VirtualisierungStand 22.09.2026Lesezeit 20 Min.
Das Wichtigste in Kürze
  • LXC-Container teilen den Kernel des Proxmox-Hosts und laufen deshalb nur mit Linux-Gästen; eine Live-Migration gibt es für sie nicht, nur eine Restart-Migration mit einem Stillstand von einigen hundert Millisekunden.
  • KVM-VMs sind die Betriebsform für alles, was Isolation, einen eigenen Kernel, Windows oder Live-Migration braucht; der Preis ist ein vollständiges Betriebssystem je Gast.
  • Docker und Podman gehören laut Proxmox-Dokumentation in eine VM, nicht in einen LXC-Container; Nesting und keyctl machen es möglich, aber die Dokumentation nennt die Wahl ausdrücklich: systemd-networkd oder Docker.
  • Proxmox VE 9.1 vom 19. November 2025 kann LXC-Container aus OCI-Images erzeugen; Anwendungscontainer daraus gelten in Version 9.2 weiterhin als Technology Preview.
  • Privilegierte Container sind laut LXC-Team unsicher: Ausbrüche daraus bekommen keine CVE, weshalb Datenbanken und Fremdcode dort nichts verloren haben.
KI-Transparenzhinweis: Dieser Beitrag wurde teilweise mit Unterstützung von KI-Systemen erstellt und vor der Veröffentlichung redaktionell geprüft. Kennzeichnung gemäß EU-KI-Verordnung (Verordnung (EU) 2024/1689).

/01Drei Betriebsformen, ein Unterschied im Kernel

Proxmox VE kennt zwei Gasttypen: den KVM-Gast, also die virtuelle Maschine mit eigenem Kernel, und den LXC-Container, der den Kernel des Hosts mitbenutzt. Docker ist kein dritter Gasttyp. Es ist eine Laufzeitumgebung für Anwendungscontainer, die innerhalb eines der beiden Gasttypen laufen muss. Wer in der Weboberfläche nach einem „Docker-Knopf" sucht, findet keinen, und das ist Absicht.

Der Unterschied liegt beim Kernel, und aus ihm folgt fast alles andere. Eine VM bringt ihren Kernel mit; deshalb läuft in ihr Windows, FreeBSD oder ein Linux mit anderem Kernelstand als der Host. Ein Container bringt nur Userland mit; deshalb startet er in Sekunden, braucht keinen eigenen Arbeitsspeicher für einen zweiten Kernel und sieht den Host näher, als vielen lieb ist. Die Proxmox-Dokumentation formuliert es trocken: Container sind eine leichtgewichtige Alternative zu VMs, die Laufzeitkosten sind „gering, meist vernachlässigbar", und die Nachteile sind, dass nur Linux-Distributionen laufen und der Zugriff auf Host-Ressourcen aus Sicherheitsgründen eingeschränkt werden muss.

Was die Sache nicht ist: eine Frage der Leistung. In der Praxis entscheidet selten der Durchsatz zwischen LXC und VM, sondern die Frage, was passiert, wenn etwas schiefgeht. Der Kernel ist die Grenze, die ein Angreifer überwinden müsste. Bei der VM liegt sie zwischen Gast und Hypervisor, beim Container liegt sie in Namespaces, cgroups, AppArmor und seccomp. Das ist keine Formsache.

/02LXC: geteilter Kernel, unprivilegiert als Regel

Ein LXC-Container ist in Proxmox ein Systemcontainer: ein vollständiges Debian, Ubuntu, Alma oder Rocky mit eigenem systemd, eigenem Netz und eigenem Dateisystem, nur eben ohne eigenen Kernel. Genau dafür wurde pct gebaut, und genau dafür taugt es: Reverse-Proxy, DNS-Resolver, Monitoring-Agenten, kleine Webanwendungen, interne Werkzeuge, die man in einer Viertelstunde aufsetzt und die keine Wochenendmigration brauchen.

Die wichtigste Einstellung fällt bei der Erstellung: unprivilegiert oder privilegiert. Unprivilegierte Container bilden die Root-Kennung 0 im Container per User-Namespace auf einen unprivilegierten Nutzer des Hosts ab. Bricht ein Prozess aus, landet er als niemand auf dem Host; die Dokumentation zitiert das LXC-Team mit dem Satz, unprivilegierte Container seien „safe by design". Seit einigen Versionen ist das der Standard bei der Erstellung. Der Preis: Ein systemd im Container muss mindestens Version 220 haben, Bind-Mounts vom Host bringen Rechteprobleme mit, und Quotas funktionieren nur im privilegierten Container auf ext4-Abbildern.

Privilegierte Container stützen sich allein auf AppArmor, seccomp und Namespaces. Das LXC-Team hält diese Bauform für unsicher und vergibt für neue Ausbrüche daraus keine CVE; die Dokumentation zieht die Konsequenz, dass privilegierte Container nur in vertrauenswürdigen Umgebungen laufen sollen. Wer die Option heute noch anhakt, tut es meist wegen eines NFS-Mounts, eines USB-Geräts oder eines alten Installationsskripts. Jeder dieser Gründe lässt sich anders lösen: Der Mount gehört auf den Host und per Bind-Mount in den Container, das Gerät in eine VM, das Skript in die Tonne.

Zwei Betriebseigenschaften prägen den Alltag. Erstens gibt es keine Live-Migration für Container. Die Dokumentation nennt technische Gründe und bietet die Restart-Migration an: herunterfahren, verschieben, starten, mit einem Stillstand von „einigen hundert Millisekunden" und einem Abbruch-Timeout von 180 Sekunden. Für einen Proxy ist das egal, für einen Dienst mit langen Sitzungen nicht. Zweitens hängt der Container am Kernel des Hosts. Ein Kernel-Update auf dem Knoten ist ein Kernel-Update für jeden Container darauf, ob er will oder nicht; wie wir Kernel-Wechsel im Cluster staffeln, steht im Artikel zur Kernel-Update-Strategie für Proxmox-Cluster.

/03KVM-VM: Isolation, Live-Migration, Windows

Die virtuelle Maschine ist die Betriebsform ohne Fußnoten. Sie läuft mit jedem Betriebssystem, das QEMU startet, sie hat ihren eigenen Kernel und damit ihre eigenen Sicherheitsupdates, und sie lässt sich im laufenden Betrieb auf einen anderen Knoten verschieben. Der Befehl dafür ist qm migrate <vmid> <ziel> --online; die Weboberfläche wählt bei laufender VM die Live-Migration von selbst. Voraussetzung sind gemeinsamer Speicher oder eine Speicher-Mitmigration, keine durchgereichten Geräte und dieselbe CPU-Architektur. Zwischen Intel- und AMD-Hosts gibt die Dokumentation keine Garantie, und die Wahl des CPU-Typs entscheidet mit: host bringt alle Flags, verträgt aber keine heterogenen Knoten; der Standard der Oberfläche, x86-64-v2-AES, läuft auf allem ab Westmere.

Der Preis der VM ist ein vollständiges Betriebssystem je Gast: eigener Kernel, eigener Speicherverwalter, eigener Bootvorgang, eigenes Patch-Management. Wer zwölf kleine Dienste in zwölf VMs packt, betreibt zwölf Betriebssysteme. Das ist kein Argument gegen VMs, aber eines dafür, sie mit Bedacht zu schneiden: Datenbank, Fachanwendung, Domänencontroller, alles mit Fremdcode, alles mit Windows, alles, was migrieren können muss.

Für Windows kommt ein Sonderfall dazu. Windows 11 und Server 2025 wollen UEFI, Secure Boot und ein TPM; Proxmox liefert alle drei als virtuelle Geräte, und seit Version 9.1 liegt der TPM-Zustand auf Wunsch im qcow2-Format, sodass Snapshots auch auf NFS- oder CIFS-Speicher funktionieren. Ein Windows im Container gibt es nicht und wird es nicht geben; wer die Frage stellt, hat die Antwort schon.

Der Schnitt zwischen VM und Container ist eine Architekturentscheidung, keine Klickfolge. Virtualisierung mit Proxmox VE — wir planen Cluster, Speicher und Gasttypen so, dass Wartung ohne Wartungsfenster geht.

/04Docker und Podman: in die VM, nicht in den Container

Die Frage „Docker in LXC oder in einer VM" ist im Proxmox-Forum ein Dauerbrenner, und die Antwort dort schwankt mit dem Tagesgeschmack. Die Dokumentation schwankt nicht. Sie empfiehlt für Anwendungscontainer, die maximale Isolation oder Live-Migration brauchen, das Verschachteln in einer QEMU-VM als weiterhin gültige Praxis. Und in der Optionsreferenz steht bei keyctl der Satz, den man kennen sollte, bevor man den ersten Docker-Host als Container anlegt: Die Option sei nötig, um Docker in einem unprivilegierten Container zu betreiben, sie sei im Kern ein Workaround für systemd-networkd, und im Ergebnis wähle man zwischen systemd-networkd und Docker.

Technisch geht es trotzdem. Mit features: nesting=1,keyctl=1 startet Docker in einem unprivilegierten Container, und für einen Bastelrechner ist dagegen nichts einzuwenden. Im Betrieb kaufen Sie sich damit drei Eigenschaften ein, die nicht in der Anleitung stehen, sondern im Störungsprotokoll. Nesting legt laut Dokumentation procfs und sysfs des Hosts im Gast offen. Das Overlay-Dateisystem von Docker läuft auf einem Dateisystem, das selbst schon ein Container-Rootfs ist, mit allen Eigenheiten von ZFS-Subvolumes oder ext4-Abbildern darunter. Und jedes Kernel-Update des Hosts ist ein Kernel-Update für die Docker-Engine, ohne dass jemand die Kompatibilität getestet hätte. Erfahrungswert aus unseren Übernahmen: Die Docker-in-LXC-Umgebungen, die nach einem Proxmox-Upgrade nicht mehr starteten, hatten alle dieselbe Vorgeschichte, nämlich ein Forum-Tutorial und keinen Grund, der sich im Nachhinein noch rekonstruieren ließ.

Unsere Empfehlung ist unspektakulär: eine schlanke Linux-VM je Docker-Umgebung, mit Docker Compose oder Podman, mit dem QEMU-Guest-Agent für konsistente Sicherungen, mit Live-Migration und eigenem Kernel. Wer viele Compose-Stacks hat, betreibt zwei oder drei solcher VMs nach Vertrauensstufe getrennt, nicht eine je Stack. Ab wann aus mehreren Docker-Hosts ein Kubernetes werden sollte, haben wir im Artikel Docker und Kubernetes on-premise beantwortet; die Kurzfassung lautet dort wie hier: später, als die Anbieter es Ihnen erzählen.

Merksatz: Docker in einem LXC-Container funktioniert bis zum nächsten Kernel-Update oder bis zum ersten Sicherheitsvorfall. Docker in einer VM funktioniert, bis Sie es abschalten.

/05OCI-Images seit Proxmox VE 9.1: Stand und Grenzen

Am 19. November 2025 hat Proxmox mit Version 9.1 eine Funktion eingeführt, die die Docker-Frage verschiebt, aber nicht beantwortet: LXC-Container lassen sich aus OCI-Images erzeugen. OCI, die Open Container Initiative, ist das Format, in dem Docker-Hub, GitHub Container Registry und alle anderen Registries ihre Images verteilen. Proxmox kann ein solches Image manuell hochladen oder per Knopf „Pull from OCI registry" aus einer Registry holen; es liegt dann wie eine Vorlage auf dem Speicher, und pct create baut daraus einen Container. Das Image wird dabei in den LXC-Stack übersetzt, den Proxmox ohnehin verwendet. Es läuft also keine Docker-Engine, nirgends.

Die Release-Notes unterscheiden zwei Fälle, und die Unterscheidung ist wichtig. Systemcontainer aus geeigneten OCI-Images, etwa ein debian:trixie mit systemd darin, gelten als vollwertig. Anwendungscontainer aus OCI-Images, also das typische Ein-Prozess-Image mit einem Webserver oder einer Datenbank, sind seit 9.1 und auch in Version 9.2 vom 21. Mai 2026 „Technology Preview". Die 9.2-Notes zeigen, woran gearbeitet wird: Die User-Eigenschaft des Images wird jetzt beachtet, unter /dev/shm liegt ein tmpfs wie in der OCI-Laufzeitspezifikation, und die Mount-Point-Optionen idmap und keepattrs helfen bei Images, die bestimmte Verzeichnisrechte erwarten. Das sind Feinheiten, die man erst bemerkt, wenn das dritte Image nicht startet.

Was fehlt, steht in der Roadmap, nicht in den Release-Notes: OCI-Unterstützung soll „reifen", und ein deklaratives Mehr-Container-Modell nach der Compose-Spezifikation ist als Ziel formuliert. Heute gibt es weder ein compose.yaml für Proxmox noch Netze zwischen Anwendungscontainern, wie Docker sie anlegt, noch die Volumes-Semantik. Ein einzelner Dienst aus einem OCI-Image als LXC-Container: ja, mit Vorbehalt. Ein Stack aus fünf Images mit gemeinsamem Netz: heute weiterhin in der Docker-VM. Wir setzen OCI-Container produktiv derzeit nur für Systemcontainer ein und beobachten den Rest; wer den Stand nachprüfen will, findet ihn in den Release-Notes der jeweiligen Version, nicht in Blogbeiträgen vom Vorjahr.

/06Sicherheitsgrenzen im Vergleich

Die Sicherheitsfrage hat drei Ebenen, und man sollte sie getrennt betrachten: was ein Angreifer im Gast erreicht, was er beim Ausbruch erreicht, und wer dafür Patches liefert.

Im Gast ist die Lage in allen drei Formen gleich. Ein verwundbarer Webserver ist verwundbar, ob in LXC, VM oder Docker. Der Unterschied beginnt beim Ausbruch. Aus einer VM heraus muss der Angreifer QEMU oder KVM angreifen; das ist möglich, kommt vor und wird als CVE behandelt. Aus einem unprivilegierten Container heraus muss er den Kernel angreifen und landet dann zunächst als unprivilegierter Nutzer auf dem Host; auch das gilt als Kernel-Fehler mit CVE. Aus einem privilegierten Container heraus muss er AppArmor oder seccomp umgehen, und dafür gibt es laut LXC-Team keine CVE und keine schnelle Korrektur. Das ist der Grund, warum wir privilegierte Container in Kundenumgebungen als Befund führen, nicht als Geschmacksfrage.

Wie nah der geteilte Kernel ist, hat Proxmox im Mai 2026 selbst vorgeführt: Die 9.2-Notes nennen einen seccomp-Filter gegen eine lokale Rechteausweitung über AF_ALG-Sockets in Containern, veröffentlicht als Sicherheitshinweis PSA-2026-00018-1. Für VMs war das kein Thema. Für jeden Container auf einem nicht aktualisierten Host war es eines, und zwar für alle gleichzeitig. Wer Container betreibt, betreibt den Host-Kernel als gemeinsames Sicherheitsgut; wie man den Host selbst härtet, steht im Artikel Linux-Server härten.

Docker fügt eine vierte Ebene ein: die Engine mit Root-Rechten im Gast, den Socket, den jedes Verwaltungswerkzeug gern eingebunden hätte, und Images unbekannter Herkunft. In einer VM bleibt der Schaden im Gast. In einem LXC-Container mit Nesting liegen procfs und sysfs des Hosts eine Schicht darunter offen. Das ist kein Ausbruch, aber es ist eine Menge Information über den Host, die ein Anwendungscontainer nie sehen sollte.

Gasttyp und Härtung entscheiden, was ein Angreifer nach dem ersten Schritt noch erreicht. Linux-Server-Management heißt hier: Kernel-Stand, AppArmor-Profile und Rechteabbildung im laufenden Betrieb, mit Nachweis.

/07Sicherung und Snapshots je Betriebsform

Die Sicherung unterscheidet sich zwischen VM und Container stärker als die Oberfläche vermuten lässt, weil vzdump je Gasttyp andere Modi fährt. Für VMs gibt es drei Modi, von denen einer zählt: der Snapshot-Modus nutzt das Live-Backup von QEMU, kopiert Blöcke bei laufender Maschine, braucht keinen snapshotfähigen Speicher und ruft bei aktivem Guest-Agent fsfreeze im Gast auf, damit das Dateisystem konsistent ist. Stop-Modus gibt es für höchste Konsistenz, Suspend-Modus nur noch aus Kompatibilitätsgründen; die Dokumentation rät selbst davon ab.

Für Container heißt Snapshot-Modus etwas anderes: Der Container wird kurz eingefroren, der Speicher darunter legt einen Snapshot an, der Inhalt wird als Archiv gesichert, der Snapshot verschwindet. Das setzt voraus, dass alle gesicherten Volumes auf einem snapshotfähigen Speicher liegen, also ZFS, LVM-thin oder Ceph. Liegt der Container auf einem Verzeichnis ohne Snapshot-Fähigkeit, fällt vzdump in den Suspend-Modus zurück: einmal rsync bei laufendem Container, einfrieren, zweites rsync für die Änderungen, weiterlaufen. Das braucht zusätzlichen Platz für die Zwischenkopie und einen lokalen --tmpdir, wenn das Ziel ein NFS-Server ist. Der Stop-Modus hält den Container für die Dauer der Sicherung an, und die Dokumentation warnt vor „potenziell sehr langen" Stillständen.

Zwei Fallen sind containerspezifisch. Zusätzliche Mount-Points außer dem Root-Dateisystem sind standardmäßig nicht im Backup; wer die Datenplatte eines Containers sichern will, setzt backup=1 am Mount-Point. Und Bind-Mounts vom Host sind nie im Backup, egal, was konfiguriert ist. Wir haben Bestandsumgebungen gesehen, in denen die Anwendung im Container Monat für Monat gesichert wurde und die Daten daneben auf einem Bind-Mount lagen, den niemand sicherte. Erfahrungswert, kein Einzelfall.

Mit Proxmox Backup Server als Ziel bleibt die Modi-Logik gleich; PBS speichert das Ergebnis als deduplizierte Chunks mit Metadaten, was die Dokumentation gegenüber einem Dateispeicher ausdrücklich empfiehlt. Der Restore unterscheidet sich im Alltag: VMs kommen als Ganzes zurück, bei Containern lassen sich einzelne Dateien direkt aus dem Archiv ziehen. Docker in einer VM wird als VM gesichert, konsistent über den Guest-Agent; Docker in einem LXC-Container erbt alle Container-Fallen plus die Frage, ob das Overlay-Dateisystem im eingefrorenen Zustand sauber ist. Wie oft der Restore geprobt wird, ist wichtiger als der Modus; die RTO misst man, man schätzt sie nicht.

/08Speicher und Ressourcen ohne Prozentzahlen

Zum Ressourcenverbrauch kursieren Zahlen, die wir nicht wiederholen, weil niemand sie in einer Umgebung wie Ihrer gemessen hat. Was sich ohne Messung sagen lässt: Ein Container hat keinen eigenen Kernel und keinen eigenen Seitencache, sein Arbeitsspeicher ist die Summe seiner Prozesse, begrenzt durch cgroups; der Standardwert für Swap ist 512 MB, für Speicher gibt es keinen Standard, weil der Wert Pflicht ist. Eine VM reserviert, was ihr zugewiesen ist, plus den Kernel und den Cache darin; Ballooning gibt einen Teil zurück, aber nicht verlässlich unter Last. Bei zwanzig Diensten mit je einem halben Gigabyte Bedarf ist der Unterschied spürbar. Bei drei Datenbanken mit je 64 GB ist er es nicht.

Seit Proxmox VE 9.0 gibt es nur noch cgroup v2; die Dokumentation beschreibt, dass Speicher und Swap damit getrennt begrenzt werden, und die 9.2-Notes warnen vor verbliebenen v1-Einträgen in alten Container-Konfigurationen. Wer Container aus Proxmox-6-Zeiten mitschleppt, prüft das vor dem nächsten Upgrade.

Beim Speicher liegt der eigentliche Unterschied. Eine VM bekommt ein Blockgerät: ein ZFS-Zvol, ein LVM-thin-Volume, ein RBD in Ceph oder eine qcow2-Datei. Ein Container bekommt je nach Speicher etwas anderes: auf ZFS ein Subvolume, laut Dokumentation technisch ein Bind-Mount, aber mit Größenänderung und Snapshot; auf LVM oder Verzeichnissen ein Raw-Abbild mit ext4 darin; auf Verzeichnisspeichern mit size=0 ein schlichtes Verzeichnis. Das ZFS-Subvolume ist die angenehmste Form: dünn belegt, snapshotfähig, per Dateisystem sichtbar, Replikation zwischen Knoten inklusive. Das Raw-Abbild verhält sich wie eine kleine VM-Platte mit allen Nachteilen eines Dateisystems im Dateisystem. Welche Speicherform Snapshots wie verkettet, haben wir im Artikel zu Snapshots als Volume-Ketten auf SAN-Speicher auseinandergenommen; für Container gilt schlicht: ZFS oder Ceph, sonst kein Snapshot-Backup.

FUSE-Dateisysteme im Container, etwa für S3-Mounts oder verschlüsselte Ordner, rät die Dokumentation wegen des Freezers „dringend" ab; der Mount gehört auf den Host und per Bind-Mount hinein. Und wer Docker im Container betreibt, stapelt Overlay auf Subvolume auf ZFS, drei Schichten mit je eigener Meinung über Blockgröße und Kompression. Das läuft, aber es misst sich schlecht und sichert sich schlechter.

/09Die Entscheidungsmatrix mit Befehlen

Wir entscheiden nach sieben Fragen, nicht nach Bauchgefühl. Die Tabelle fasst zusammen, was die vorigen Abschnitte begründet haben.

LXC, KVM-VM und Docker-in-VM auf Proxmox VE 9.2 im Vergleich
KriteriumLXC-Container (unprivilegiert)KVM-VMDocker/Podman in einer VM
KernelKernel des Hosts, Updates mit dem HostEigener Kernel, eigener Update-ZyklusKernel der VM, unabhängig vom Host
GastsystemeNur LinuxLinux, Windows, BSD, alles, was QEMU bootetLinux-Images aus OCI-Registries
Live-MigrationNein, nur Restart-MigrationJa, mit --onlineJa, die VM migriert, die Container merken nichts
Isolation bei AusbruchKernel-Namespace, Landung als unprivilegierter NutzerQEMU/KVM-GrenzeDocker-Grenze im Gast, dahinter die VM-Grenze
Sicherung mit PBSSnapshot-Modus nur auf ZFS/LVM-thin/Ceph; Mount-Points einzeln freigeben; Bind-Mounts nieLive-Backup auf jedem Speicher, fsfreeze per Guest-AgentWie VM; Volumes liegen in der VM-Platte
SpeicherformZFS-Subvolume, Raw-Abbild oder VerzeichnisBlockgerät: Zvol, LVM-thin, RBD, qcow2Blockgerät der VM, Overlay darin
Startzeit, DichteSekunden, viele je KnotenBootvorgang, ein OS je GastSekunden je Container, ein OS je Docker-Host
Typische DiensteProxy, DNS, Monitoring-Agent, interne Web-WerkzeugeDatenbank, Fachanwendung, Domänencontroller, Fremdcode, WindowsCompose-Stacks, Entwicklungsumgebungen, Anwendungen, die nur als Image verteilt werden
Falsch, wennFremdcode, Datenbank mit Anspruch, Live-Migration nötig, privilegiert erforderlichDutzende Kleinstdienste, RessourcenknappheitEin einzelnes Image, das auch als Systempaket existiert

Die Befehle zu den drei Wegen stammen aus der Dokumentation, die Werte sind unsere: ein unprivilegierter Container aus einer Debian-Vorlage, eine VM als Docker-Host, und zum Vergleich die Zeile, die man im Forum findet und im Betrieb vermeiden sollte.

# 1) Unprivilegierter LXC-Container aus einer Systemvorlage (Standard bei der Erstellung)
pveam update && pveam download local debian-13-standard_13.1-1_amd64.tar.zst
pct create 210 local:vztmpl/debian-13-standard_13.1-1_amd64.tar.zst \
    --hostname proxy01 --unprivileged 1 --cores 2 --memory 1024 --swap 512 \
    --rootfs local-zfs:8 --net0 name=eth0,bridge=vmbr0,ip=dhcp
pct start 210 && pct enter 210

# Datenplatte als eigener Mount-Point, ausdruecklich in die Sicherung aufnehmen
pct set 210 --mp0 local-zfs:20,mp=/srv/data,backup=1

# 2) KVM-VM als Docker-Host, Guest-Agent fuer fsfreeze bei der Sicherung
qm create 310 --name docker01 --memory 4096 --cores 4 --cpu x86-64-v2-AES \
    --scsihw virtio-scsi-pci --scsi0 local-zfs:32 --net0 virtio,bridge=vmbr0 \
    --ostype l26 --agent enabled=1 --cdrom local:iso/debian-13.1.0-amd64-netinst.iso
qm start 310
qm migrate 310 pve02 --online        # Live-Migration im Cluster

# 3) Was das Forum empfiehlt: Docker im Container. Moeglich, aber siehe /04 und /06
pct set 210 --features nesting=1,keyctl=1
# Die Doku zu keyctl: "you can choose between running systemd-networkd or docker"

Die Vorlagen- und ISO-Namen ändern sich mit jedem Debian-Punktrelease; pveam available zeigt, was Ihr Knoten heute laden kann. Der CPU-Typ x86-64-v2-AES ist der Standard der Oberfläche und migriert zwischen ungleichen Knoten; host wäre schneller und würde die Live-Migration im gemischten Cluster kosten.

Erstellt ist ein Gast in einer Minute, betrieben wird er Jahre. Betrieb und Wartung übernimmt Updates, Sicherung und Restore-Proben für VMs und Container, mit Rufbereitschaft statt Forum.

/10Wann welche Form die falsche Wahl ist

Die Fehlentscheidungen, die wir bei Übernahmen am häufigsten vorfinden, haben ein Muster: Sie waren am Tag der Einrichtung bequem. Die Rechnung kommt beim Upgrade, beim Restore oder beim Vorfall.

  • Die Datenbank im privilegierten Container. PostgreSQL oder MariaDB laufen in LXC technisch einwandfrei. Privilegiert wurde der Container, weil ein NFS-Mount für die Dumps gebraucht wurde. Damit liegt der wertvollste Datenbestand des Hauses hinter der Grenze, für die das LXC-Team keine CVE vergibt. Unsere Regel: Datenbanken mit Anspruch an Konsistenz, Migration und Isolation in eine VM; kleine interne Datenbanken in einen unprivilegierten Container mit eigenem Mount-Point und backup=1; privilegiert nie.
  • Docker im LXC-Container mit Nesting. Der Klassiker aus dem Tutorial. Er scheitert selten sofort und fast immer beim übernächsten Kernel-Wechsel oder beim ersten Image, das /sys beschreiben will. Die Docker-VM kostet einen Kernel mehr und spart den Vorfall.
  • Der Dienst mit langen Sitzungen im Container. Ein Terminaldienst, ein Telefonie-Server, eine Anwendung mit Websocket-Sitzungen verträgt keine Restart-Migration. Wer Wartung ohne Wartungsfenster will, braucht Live-Migration und damit eine VM.
  • Der Fremdcode im Container. Die Testinstallation eines Anbieters, das Skript eines externen Entwicklers, das Werkzeug aus GitHub: Alles, dessen Herkunft Sie nicht kontrollieren, bekommt einen eigenen Kernel. Nicht, weil LXC unsicher wäre, sondern weil der Schaden eines Fehlers dort größer ist als die Ersparnis.
  • Zwanzig Kleinstdienste in zwanzig VMs. Der umgekehrte Fehler. Zwanzig Kernel, zwanzig Bootvorgänge, zwanzig Patch-Läufe für Dienste, die je fünfzig Megabyte brauchen. Hier ist der Container die richtige Antwort, und wer ihn aus Prinzip meidet, zahlt mit Arbeitsspeicher und Wartungszeit.
  • Der OCI-Anwendungscontainer als Produktivsystem. Technology Preview heißt, was es heißt. Für den internen Dienst, dessen Ausfall niemand bemerkt, ist das in Ordnung. Für den Dienst mit SLA ist es das nicht, solange Proxmox die Einschränkung selbst so ausweist.

Was sich daraus als Regel ergibt, passt in drei Sätze. Container für das, was Ihnen gehört, klein ist und einen Neustart verträgt. VM für alles mit Fremdcode, Windows, Anspruch an Isolation oder Live-Migration. Docker in eine VM, und OCI-Images in Proxmox als das behandeln, was Proxmox selbst dazu sagt. Ehrlich: Die meisten Umgebungen, die wir übernehmen, wären mit dieser Regel und einem Nachmittag Umbau in Ordnung. Der Nachmittag wird nur selten vor dem Vorfall eingeplant. Wer Proxmox ohnehin mit Support fährt, hat den Herstellersupport für 110 Euro je CPU-Sockel und Jahr dabei; die Entscheidung, welcher Dienst in welche Hülle gehört, nimmt einem der Support nicht ab.

/11Häufige Fragen

/01Kann ich Docker direkt in einem LXC-Container auf Proxmox betreiben?+
Technisch ja, mit den Container-Optionen nesting=1 und keyctl=1 in einem unprivilegierten Container. Die Proxmox-Dokumentation empfiehlt für Anwendungscontainer mit Anspruch an Isolation oder Live-Migration jedoch eine QEMU-VM und beschreibt keyctl als Workaround, bei dem man zwischen systemd-networkd und Docker wählt. Für den Betrieb raten wir zur VM.
/02Was ist der Unterschied zwischen privilegierten und unprivilegierten Containern?+
Unprivilegierte Container bilden die Root-Kennung des Containers auf einen unprivilegierten Nutzer des Hosts ab; ein Ausbruch landet ohne Rechte. Privilegierte Container verlassen sich auf AppArmor, seccomp und Namespaces. Das LXC-Team stuft sie als unsicher ein und vergibt für Ausbrüche keine CVE. Unprivilegiert ist seit Jahren der Standard bei der Erstellung.
/03Gibt es Live-Migration für LXC-Container?+
Nein. Die Dokumentation nennt technische Gründe und bietet stattdessen die Restart-Migration an: Der Container wird heruntergefahren, verschoben und auf dem Zielknoten gestartet, mit einem Stillstand von einigen hundert Millisekunden und einem Abbruch-Timeout von 180 Sekunden. Dienste mit langen Sitzungen gehören deshalb in eine VM.
/04Was bringt die OCI-Unterstützung seit Proxmox VE 9.1?+
Seit dem 19. November 2025 lassen sich LXC-Container aus OCI-Images erzeugen, manuell hochgeladen oder aus einer Registry gezogen. Systemcontainer daraus gelten als vollwertig, Anwendungscontainer sind auch in Version 9.2 vom Mai 2026 Technology Preview. Es läuft dabei keine Docker-Engine; Compose-Stacks mit gemeinsamem Netz gibt es in Proxmox bislang nicht.
/05Wie sichert Proxmox Backup Server Container anders als VMs?+
VMs werden im Snapshot-Modus per Live-Backup blockweise gesichert, auf jedem Speicher und mit fsfreeze über den Guest-Agent. Container brauchen für den Snapshot-Modus einen snapshotfähigen Speicher wie ZFS, LVM-thin oder Ceph, sonst fällt vzdump auf den Suspend-Modus mit doppeltem rsync zurück. Zusätzliche Mount-Points sind nur mit backup=1 dabei, Bind-Mounts nie.
/06Wie viel Arbeitsspeicher spart ein Container gegenüber einer VM?+
Belastbare Zahlen liefert nur eine Messung in Ihrer Umgebung, und wir nennen deshalb keine Prozentwerte. Qualitativ spart der Container den Kernel, den Seitencache und den Bootvorgang eines zweiten Betriebssystems; bei vielen kleinen Diensten ist das spürbar, bei wenigen großen Datenbanken kaum. Die Entscheidung sollte an Isolation und Migration hängen, nicht am RAM.
/07Gehört eine Datenbank in einen Container oder in eine VM?+
Kleine interne Datenbanken laufen in einem unprivilegierten Container mit eigenem Mount-Point und aktivierter Sicherung ordentlich. Datenbanken mit Anspruch an Konsistenz, Isolation oder Live-Migration gehören in eine VM. In einen privilegierten Container gehört keine Datenbank, weil dort der wertvollste Datenbestand hinter der schwächsten Grenze liegt.
Quellen
  1. Proxmox VE Administration Guide 9.2.4, Kapitel „Proxmox Container Toolkit", Proxmox Server Solutions GmbH, pve.proxmox.com/pve-docs/chapter-pct.html, abgerufen am 08.09.2026.
  2. Proxmox VE Administration Guide 9.2.4, Kapitel „Qemu/KVM Virtual Machines", Proxmox Server Solutions GmbH, pve.proxmox.com/pve-docs/chapter-qm.html, abgerufen am 08.09.2026.
  3. Proxmox VE Administration Guide 9.2.4, Kapitel „Backup and Restore", Proxmox Server Solutions GmbH, pve.proxmox.com/pve-docs/chapter-vzdump.html, abgerufen am 08.09.2026.
  4. Proxmox VE Roadmap und Release Notes 9.0 bis 9.2, Proxmox Server Solutions GmbH, pve.proxmox.com/wiki/Roadmap, abgerufen am 08.09.2026.
  5. Virtualisierung mit Proxmox VE (Preisrahmen Proxmox-Support), HostSpezial, loesungen/virtualisierung.html, abgerufen am 08.09.2026.
Herausgeber · Autor: Marco Hofmann

HostSpezial-Redaktion — HostSpezial betreibt seit 2010 Managed Services für den Mittelstand aus deutschen Rechenzentren, zertifiziert nach ISO/IEC 27001 (Zertifikat 202787), Sitz in Lichtenfels. Fachliche Prüfung und Freigabe dieses Beitrags liegen bei der Redaktion. Impressum · Kontakt

MEHRVerwandte Artikel

Weiterlesen zum gleichen Thema.

$ related --articles
// nächster schritt

Gasttypen prüfen lassen, bevor der nächste Kernel kommt.

Wir gehen Ihre Proxmox-Umgebung Gast für Gast durch: privilegierte Container, Docker in LXC, Mount-Points ohne Sicherung, Dienste ohne Live-Migration. Sie bekommen eine Liste mit Umbauempfehlung je Gast. Virtualisierung mit Proxmox VE, geplant und betrieben aus Lichtenfels.

ISO/IEC 27001 zertifiziert · Zertifikat 202787

$ pve --gasttypen-pruefen
Proxmox-Check anfragen → 09571 873149
30 Minuten, unverbindlich und direkt mit einem technischen Ansprechpartner. Drei Sätze zur Ausgangslage genügen; die Antwort kommt in der Regel innerhalb eines Werktags. Aus der Anfrage entsteht keine Verpflichtung.