← Zurück zu den Tutorials
27. Mai 2026·4 Min. Lesezeit

LXD/LXC-Container unter Ubuntu: Praxis-Guide

LXD unter Ubuntu 24.04 installieren und leichtgewichtige System-Container starten: Netzwerk, Storage, Snapshots, Limits und wie sich LXC von Docker unterscheidet.

LXD bietet Ihnen System-Container: leichtgewichtige Instanzen, die sich wie eine vollständige Linux-Maschine verhalten — mit eigenem Init-System, eigenen Benutzern und Diensten — aber den Kernel des Hosts teilen, sodass sie in Sekunden starten und nur einen Bruchteil der Ressourcen einer VM nutzen. Unter Ubuntu 24.04 ist LXD der native, von Canonical unterstützte Weg, sie zu betreiben — angesiedelt zwischen schwergewichtigen KVM-VMs und Docker-Containern für einzelne Prozesse.

Dieser Praxis-Guide installiert LXD, startet Ihren ersten Container und behandelt den täglichen Betrieb: Netzwerk, Storage, Snapshots und Ressourcenlimits. Nebenbei erklärt er, wie sich System-Container von Anwendungs-Containern wie Docker unterscheiden, damit Sie wissen, welches Werkzeug zu welcher Aufgabe passt.

LXC vs. LXD vs. Docker

LXC ist die Low-Level-Container-Laufzeit von Linux. LXD ist die moderne Verwaltungsschicht darüber — ein Image-Store, eine REST-API und der freundliche lxc-Client. Docker hingegen verpackt einen einzelnen Anwendungsprozess pro Container. Faustregel: Greifen Sie zu LXD, wenn Sie eine dauerhafte, VM-ähnliche Umgebung wollen; zu Docker, wenn Sie eine zustandslose App ausliefern wollen; und zu KVM, wenn Sie einen anderen Kernel oder harte Isolation benötigen.

Voraussetzungen

Sie benötigen Ubuntu 24.04 mit einem sudo-fähigen Benutzer und einigen Gigabyte freiem Speicher. LXD wird unter Ubuntu als Snap ausgeliefert, was hier der unterstützte Installationsweg ist (anders als bei Docker, wo das Snap besser gemieden wird).

Schritt 1: LXD installieren und initialisieren

Installieren Sie das LXD-Snap und fügen Sie sich der Gruppe lxd hinzu, um den Client ohne sudo auszuführen:

sudo snap install lxd
sudo usermod -aG lxd $USER
newgrp lxd

Führen Sie den geführten Initialisierer aus. Die Standardwerte sind für einen Einzelhost sinnvoll — er richtet einen Storage-Pool (ZFS oder dir) und ein Default-Bridge-Netzwerk ein:

lxd init --minimal

Für volle Kontrolle über Storage-Backend, Netzwerk und Clustering führen Sie lxd init ohne --minimal aus und beantworten die Fragen.

Schritt 2: Den ersten Container starten

Starten Sie einen Ubuntu-24.04-System-Container namens web1 vom offiziellen Image-Server:

lxc launch ubuntu:24.04 web1
lxc list

Die erwartete Ausgabe zeigt den Container RUNNING mit einer IPv4-Adresse aus der LXD-Bridge:

+------+---------+----------------------+------+-----------+-----------+
| NAME |  STATE  |         IPV4         | IPV6 |   TYPE    | SNAPSHOTS |
+------+---------+----------------------+------+-----------+-----------+
| web1 | RUNNING | 10.x.x.10 (eth0)     |      | CONTAINER | 0         |
+------+---------+----------------------+------+-----------+-----------+

Schritt 3: Im Container arbeiten

Holen Sie sich eine interaktive Shell oder führen Sie Einzelbefehle aus, ohne den Container zu betreten:

lxc exec web1 -- bash
lxc exec web1 -- apt update

Kopieren Sie Dateien hinein und heraus und übertragen Sie ein ganzes Verzeichnis:

lxc file push ./index.html web1/var/www/html/index.html
lxc file pull web1/etc/hostname ./hostname.txt

Schritt 4: Netzwerk

Standardmäßig sitzen Container hinter einer NAT-Bridge (lxdbr0). Um einen Dienst verfügbar zu machen, leiten Sie einen Host-Port an den Container weiter oder binden den Container per Bridge an Ihr LAN an:

lxc config device add web1 http proxy \
  listen=tcp:0.0.0.0:8080 connect=tcp:127.0.0.1:80

lxc network list

Für direkten LAN-Zugriff binden Sie den Container an eine Host-Bridge an — das Einrichten der Bridge selbst zeigt unsere Anleitung zum Linux-Bridge-Networking.

Schritt 5: Storage und Ressourcenlimits

Storage-Pools auflisten und einem Container ein dediziertes Daten-Volume hinzufügen:

lxc storage list
lxc storage volume create default web1-data
lxc config device add web1 data disk 
pool=default source=web1-data path=/data

Begrenzen Sie CPU und Speicher, damit kein Container den Host aushungert — live angewendet:

lxc config set web1 limits.cpu 2
lxc config set web1 limits.memory 1GiB
lxc config show web1 | grep limits

Schritt 6: Snapshots und Wiederherstellung

Snapshots sind auf einem Copy-on-Write-Backend sofort und günstig. Erstellen Sie einen vor einer riskanten Änderung, listen Sie sie auf und stellen Sie wieder her:

lxc snapshot web1 before-upgrade
lxc info web1 | grep -A3 Snapshots
lxc restore web1 before-upgrade

Um einen Container in eine fertige Vorlage für wiederholbare Umgebungen zu klonen:

lxc copy web1 web1-template
lxc publish web1 --alias web-baseline

Schritt 7: Lebenszyklus und Aufräumen

Container sauber stoppen, starten und löschen:

lxc stop web1
lxc start web1
lxc delete web1 --force

Fehlerbehebung und Stolperfallen

  • „permission denied“ beim Ausführen von lxc — Sie haben sich nach der Gruppenänderung nicht neu angemeldet; führen Sie newgrp lxd aus oder starten Sie eine neue Sitzung.
  • Keine IPv4 am Containerlxdbr0 hat kein Subnetz erhalten; führen Sie lxd init erneut aus oder prüfen Sie lxc network show lxdbr0.
  • „storage pool not found“ — Sie haben die Initialisierung übersprungen; LXD benötigt mindestens einen Pool aus lxd init.
  • Versuch, einen anderen Kernel zu betreiben — System-Container teilen den Host-Kernel; benötigen Sie einen anderen, nutzen Sie stattdessen eine KVM-VM.

Wie es weitergeht

System-Container sind eines von drei sich ergänzenden Werkzeugen. Für zustandsloses Anwendungs-Packaging geht es weiter mit dem Installieren von Docker unter Ubuntu 24.04; für volle Isolation auf Hardware-Ebene siehe Installieren von KVM/QEMU.

Fazit

LXD liefert VM-ähnliche Umgebungen mit Container-Geschwindigkeit — mit Snapshots, Storage und Netzwerk über eine saubere CLI verwaltet — ideal für Entwicklungsumgebungen, CI-Runner und das Konsolidieren leichtgewichtiger Dienste. Den richtigen Mix aus Containern und VMs über eine ganze Flotte zu wählen und zu betreiben, ist Teil dessen, was eine Private-Cloud-Plattform für Sie erledigt. clouditiv betreibt eine souveräne, ISO-27001-/BSI-C5-konforme Private Cloud auf Ubuntu 24.04 + OpenStack 2025.2, bei der Ihre Daten in Deutschland bleiben — damit Ihr Team auf den richtigen Bausteinen aufbaut, ohne die Infrastruktur zu warten. Sehen Sie sich unsere On-Premise-Cloud-Lösung an.