LXC Linux-Container: Erste Schritte
LXC (Linux Containers) mit LXD bietet leichtgewichtige System-Container, die sich wie vollständige virtuelle Maschinen verhalten, aber deutlich weniger Ressourcen verbrauchen. Im Gegensatz zu Docker-Anwendungscontainern führen LXC-Container ein vollständiges Betriebssystem aus und eignen sich hervorragend als VM-Ersatz für Entwicklung, Tests und Produktion.
LXD installieren und initialisieren
Installieren Sie LXD und führen Sie die Erstkonfiguration durch:
sudo snap install lxd
sudo lxd init
Bei der Initialisierung werden Sie nach Storage-Backend, Netzwerk und Standardeinstellungen gefragt. Für die meisten Anwendungsfälle eignen sich die Standardwerte. Wählen Sie zfs oder btrfs als Storage-Backend für optimale Performance:
sudo usermod -aG lxd $USER
newgrp lxd
lxc version
Überprüfen Sie die verfügbaren Images:
lxc image list images: | grep ubuntu
lxc image list images: ubuntu/24.04
Container erstellen und verwalten
Erstellen und starten Sie Ihren ersten Container:
lxc launch images:ubuntu/24.04 webserver
lxc list
lxc info webserver
Greifen Sie auf die Container-Shell zu und installieren Sie Software:
lxc exec webserver -- bash
lxc exec webserver -- apt update
lxc exec webserver -- apt install nginx -y
Konfigurieren Sie Ressourcenlimits für den Container:
lxc config set webserver limits.cpu 2
lxc config set webserver limits.memory 1GB
lxc config set webserver limits.memory.enforce hard
Dateien können einfach zwischen Host und Container übertragen werden:
lxc file push localfile.txt webserver/root/
lxc file pull webserver/var/log/syslog ./container-syslog.log
Netzwerk und Profile
Richten Sie Port-Weiterleitung ein, um Dienste im Container von außen zugänglich zu machen:
lxc config device add webserver http proxy listen=tcp:0.0.0.0:8080 connect=tcp:127.0.0.1:80
Erstellen Sie benutzerdefinierte Profile für wiederverwendbare Konfigurationen:
lxc profile create webserver-profile
lxc profile set webserver-profile limits.cpu 2
lxc profile set webserver-profile limits.memory 2GB
lxc profile device add webserver-profile root disk pool=default path=/
lxc launch images:ubuntu/24.04 app1 --profile webserver-profile
Für die direkte Netzwerkanbindung konfigurieren Sie einen macvlan-Adapter:
lxc profile device add bridged-profile eth0 nic nictype=macvlan parent=eth0
Snapshots und Backups
Erstellen Sie Snapshots zur Sicherung des Container-Zustands:
lxc snapshot webserver snap-initial
lxc info webserver | grep -A5 Snapshots
lxc restore webserver snap-initial
Richten Sie automatische Snapshots ein:
lxc config set webserver snapshots.schedule "0 */12 * * *"
lxc config set webserver snapshots.expiry 7d
lxc config set webserver snapshots.pattern snap-%d
Exportieren Sie Container-Backups für die externe Sicherung:
lxc export webserver webserver-backup.tar.gz --optimized-storage
lxc import webserver-backup.tar.gz restored-webserver
Für Produktionsumgebungen empfiehlt sich die Kombination aus automatischen Snapshots und regelmäßigen Exports auf externen Speicher. Überwachen Sie die Container-Ressourcennutzung mit lxc info --resources und planen Sie die Kapazität entsprechend.