# Proxmox LXC Setup: Installation & Professionelle Konfiguration
TL;DR / Management Summary Ein Linux Container (LXC) ist in Sekunden einsatzbereit, erfordert aber ein anderes Mindset als eine VM. Da er den Kernel des Hosts nutzt, müssen wir spezifische Einstellungen für die Isolation und den Ressourcen-Zugriff treffen. Ein Senior Admin nutzt LXC für zustandslose Dienste (Web-Frontends, Proxies) und konfiguriert sie standardmäßig als Unprivileged, um das Risiko von Host-Ausbrüchen zu eliminieren.
# 1. Erstellung eines Containers
Vom Template zur Instanz.
- Template wählen: Laden Sie das gewünschte OS-Image unter
Storage -> Templatesherunter (Artikel 676). - Wizard starten:
Create CT(Oben rechts).- Hostname:
web-prod-01. - Unprivileged Container: Immer JA (außer bei Hardware-Passthrough).
- Hostname:
- Root Disk: Wählen Sie Ihren ZFS- oder LVM-Thin Pool. 8-16 GB reichen für die meisten Container.
- CPU/RAM: Weisen Sie Ressourcen zu. LXC skaliert hier extrem effizient (fast kein Overhead).
# 2. Netzwerk-Konfiguration
Kommunikation für Container.
Im Gegensatz zu VMs bekommt ein LXC sein Netzwerk-Interface direkt vom Host-Kernel.
- Bridge:
vmbr0(oder Ihr spezifisches VLAN). - IP-Adresse: Nutzen Sie statische IPs für Server-Dienste oder DHCP für Test-Container.
- Gateway: Die IP Ihrer OPNsense (Artikel 541).
# 3. Deep Dive: Mount Points & Bind Mounts
Daten von außen reinreichen.
Manchmal soll ein Container auf Daten zugreifen, die physisch auf dem Proxmox-Host liegen (z.B. ein großes Video-Archiv).
- Bind Mount: Verknüpft ein Host-Verzeichnis mit einem Pfad im Container.
- Vorteil: Keine Netzwerk-Protokolle (NFS/SMB) nötig, Bare-Metal Geschwindigkeit.
# In /etc/pve/lxc/ID.conf hinzufügen
mp0: /tank/data,mp=/mnt/data
- Wichtig: Achten Sie auf die User-IDs (UID). Im unprivilegierten Modus müssen die Dateirechte am Host dem gemappten User (z.B. UID 100000) gehören.
# 4. Day-2 Operations: Container-Optionen (Features)
Zusatz-Power freischalten.
Ein unprivilegierter Container ist sehr restriktiv. Einige Dienste benötigen Ausnahmen (Options -> Features):
- Nesting: Zwingend erforderlich für Docker im LXC oder Systemd-Dienste.
- NFS/SMB: Erlaubt dem Container, selbst Netzwerk-Laufwerke zu mounten.
- FUSE: Erlaubt Dateisysteme im User-Space (z.B. für Rclone).
# 5. Troubleshooting & “War Stories”
Wenn der Container streikt.
# Top 3 Fehlerbilder
-
Symptom: Container startet nicht (“failed to setup console”).
- Ursache: Zu wenig RAM zugewiesen oder Kernel-Modul am Host fehlt.
- Lösung:
pct start <id> --debugnutzen, um den exakten Fehler zu sehen.
-
Symptom:
apt updateschlägt fehl.- Ursache: DNS-Server in den Container-Settings falsch oder Firewall blockiert den ausgehenden Traffic.
-
Symptom: Uhrzeit im Container ist falsch.
- Lösung: LXC nutzt die Host-Uhrzeit. Korrigieren Sie den NTP-Sync am Proxmox-Host (Artikel 543).
# “War Story”: Die “Read-Only” Datenbank
Ein Admin installierte eine MySQL-Datenbank in einem LXC auf einem ZFS-Storage. Nach einem Monat war der Container plötzlich im Read-Only Modus. Die Entdeckung: Er hatte kein Quota gesetzt. Der Container hatte das gesamte Quota des ZFS-Pools verbraucht. Da ZFS für Metadaten-Operationen immer freien Platz braucht, sperrte der Kernel alle Schreibvorgänge. Lehre: Setzen Sie in der LXC-Konfiguration immer eine maximale Disk-Größe. Anders als bei VMs wird der Platz bei LXC am Host dynamisch belegt, was ohne Limits zum Chaos führt.
# 6. Monitoring & Reporting
Ressourcen-Audit.
# pct status
# Zeigt Status und CPU/RAM Nutzung
pct list
- KPI:
Swap Usage. Wenn ein Container anfängt zu swappen, verlangsamt er den gesamten Host. Erhöhen Sie den RAM oder limitieren Sie den Swap-Wert.
# 7. Fazit & Empfehlung
LXC ist das effizienteste Werkzeug in der Proxmox-Welt.
- Empfehlung: Nutzen Sie LXC für Webserver, Datenbanken und Logging-Instanzen.
- Wichtig: Verwenden Sie für alles, was “unten” am Kernel bastelt (VPN-Server, Docker), lieber eine echte VM, um Stabilitätsprobleme am Host zu vermeiden.
# Anhang: Cheatsheet (pct config)
| Aufgabe | Befehl |
|---|---|
| Config ansehen | pct config <id> |
| RAM ändern | pct set <id> -memory 4096 |
| Nesting aktivieren | pct set <id> -features nesting=1 |
| Backup starten | vzdump <id> --storage local-backup |