LXD-Container benötigen eine Unix-Umgebung. Mit dem aktuellen »Windows Subsystem for Linux« können Container-Instanzen auch bequem auf Windows-Rechnern installiert und benutzt werden.
LXD vereint die Vorteile virtueller Rechner (Xen et.al.) und die Ressourceneffizienz von Containern (aka Docker). Es ist Open-Source und gut dokumentiert. Ferner existiert eine API für eine Steuerung z.B. über Ruby-Skripte. Canonical positioniert LDX als Standard für Cloud- und Kubernetics-Anwendungen. Es besteht eine Kooperation mit Microsoft, die inzwischen Früchte trägt. Nie war es einfacher, Linux-Programme und -Dienste auf Windwows-Maschinen zu benutzen.
Im November 2022 entfernte Microsoft das »Preview-Siegel von dem Windows Subsystem for Linux (WSL). Man muss das Feature zwar noch manuell einrichten, die Verwendung ist aber nicht mehr »experimentell«. Zukünftige Versionen dürften kompatibel zur aktuellen Version WSL-2 sein. Der Einsatz ist auch in einer Produktivumgebung gefahrlos möglich.
Installation
Am 15. November 2022 gab Microsoft WSL-2 frei. Es ist offiziell im App-Store enthalten und kann via Power-Shell im Administrator-Modus mit
wsl --install
installiert und aktiviert werden. Danach kann Ubuntu über den App-Store installiert werden.
Die Systemd-Unterstützung muss derzeit noch händisch aktiviert werden.
Hierfür in einem Terminal die Datei
/etc/wsl.conf
editieren (ggf. neu anlegen) und[boot] systemd=true
hinzufügen. Nach einem Neustart der WSL (
wsl --shudown
) können SNAP’s installiert werden.
LXD
Die Installation von LXD unterscheidet sich nicht mehr von der Linux-Version.
sudo snap install lxd
sudo lxd init
Initialisiert das System. LXD-Container existieren im Verzeichnis /var/lib/lxd/containers.
Wichtig: Benutzer in Gruppe lxd eintragen und newgrp ausführen
sudo adduser {username} lxd
newgrp lxd
Aufsetzen und Standardbefehle
lxc launch ubuntu:j mein_container # j steht für Jammy (22.04)
lxc exec mein_container bash # root werden
lxc exec tws -- sudo --login --user ubuntu # sudo-fähiger Benutzer werden
Kryptische Befehlszeilen müssen nicht sein. LXD verfügt über einen Alias-Befehl, mit dem man Standardbefehle verkürzen kann. So wird aus
lxc exec tws -- sudo --login --user ubuntu
über ein einmaliges
lxc alias add open 'exec @ARGS@ -- sudo --login --user ubuntu'
einfach
lxc open tws
Den Status angelegter LXD-Instanzen gibt lxc list
aus
lxc list
+------+---------+-----------------------+------+------------+-----------------+
| NAME | STATUS | IPV4 | IPV6 | TYP | SCHNAPPSCHÜSSE |
+------+---------+-----------------------+------+------------+-----------------+
| beta | RUNNING | 10.127.216.240 (eth0) | | PERSISTENT | 0 |
+------+---------+-----------------------+------+------------+-----------------+
| tws | RUNNING | 10.127.216.221 (eth0) | | PERSISTENT | 0 |
+------+---------+-----------------------+------+------------+-----------------+
Ressourcen
- TopoFocus-Blogbeitrag Netzwerk aus LXD-Containern
- Ubuntu-Dokumentation zur Nutzung unter Windows: ubuntu.com/tutorials
- Microsoft Dokumentation: wsl.conf
- Microsoft Dokumentation: The WSL … is now generally available on Windows 10 and 11
- Microsoft allgemeine WSL Dokumentation auf Deutsch
Gateway
Handelsknecht
ATS
TWS
Handelsknecht
ATS