Wer braucht schon Docker, wenn wir systemd-nspawn haben? Ja, genau, wir haben uns gedacht, wir nehmen dich heute mal mit auf eine kleine Entdeckungsreise in die Tiefen des systemd-Universums. Ziel unserer Expedition: systemd-nspawn, der Underdog der Containerisierung.
Du kennst das. Manchmal brauchen wir einfach eine Sandbox zum Spielen. Oder zum Testen. Oder zum Katastrophen-Provozieren, ohne dass es wehtut. Dafür gibt's doch Container, oder? Richtig. Aber warum immer gleich die ganz große Docker-Kanone rausholen, wenn das Bordmittel systemd-nspawn den Job oft genauso gut erledigt?
Falls du systemd-nspawn noch nicht kennst: Es ist ein einfaches Tool zum Starten von isolierten Systemen innerhalb einer leichten Containerumgebung. Kein Schnickschnack, kein Ballast, nur pure Container-Power. Und das Beste: Es ist bereits in systemd integriert, dem Init-System, das auf den meisten modernen Linux-Distributionen läuft.
Jetzt aber genug der Vorrede, lass uns loslegen! Zuerst brauchst du ein Basis-Image. Du kannst ein fertiges Image herunterladen oder selbst eines erstellen. Wir haben uns für Letzteres entschieden. Mit debootstrap lassen sich ganz einfach minimale Debian-Systeme erstellen:
```
debootstrap --include=systemd-container --components=main stable debian-tree/
```
Jetzt haben wir ein schönes, frisches Debian-System in unserem Ordner "debian-tree". Zeit, unseren Container zu starten!
```
systemd-nspawn -D debian-tree/
```
Bumm! Du bist jetzt im Container und kannst machen, was du willst. Installiere Pakete, starte Dienste, lösche Dateien - was immer du tun möchtest, es wird keinen Einfluss auf dein Host-System haben.
Aber warte, es wird noch besser. systemd-nspawn kann mit systemd auf dem Hostsystem integriert werden. Das bedeutet, du kannst deinen Container als systemd-Dienst starten und stoppen. Einfach eine .service-Datei erstellen und schon kann systemd deinen Container verwalten:
```
echo -e "[Service]\nExecStart=/usr/bin/systemd-nspawn -D /path/to/your/container -b\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/mycontainer.service
systemctl enable mycontainer.service
systemctl start mycontainer.service
```
Voilà! Dein Container läuft jetzt als systemd-Dienst und startet automatisch beim Systemstart.
So, das war's für heute. Mit systemd-nspawn hast du jetzt ein mächtiges Werkzeug an der Hand, um schnell und einfach Container zu erstellen und zu verwalten. Keine Ausreden mehr, ran an die Container und fröhliches Sandboxen!