LXC-Container
HINWEIS: Alles bitte alles als ‚root‘ ausführen, ein einfacher Nutzer ist dazu nur im Zusammenhang mit nichtprivilegierten Containern in der Lage.
Unter Debian 9 / Stretch (veraltet)
Hier sollen die leider etwas umfangreichen libvirt-Tools zum Einsatz kommen, was es aber später leicher macht, das GUI „virt-manager“ aufzusetzen.
$> apt-get install lxc libvirt-clients libvirt-daemon libvirt-daemon-system
Erst-Konfiguration
Netzwerk vorbereiten
$> virsh -c lxc:/// net-define /etc/libvirt/qemu/networks/default.xml $> virsh -c lxc:/// net-start default $> # Wenn automatisches starten gewünscht ist $> virsh -c lxc:/// net-autostart default
Container erstellen
$> lxc-create -n debian9 -t debian
Container-Konfigurationsdatei anpassen
$> nano /var/lib/lxc/debian9/configDabei ist folgendes zu tun:
# Auskommentieren #lxc.network.type = empty # Am Ende anfügen lxc.network.type = veth lxc.network.flags = up lxc.network.link = virbr0 lxc.network.ipv4 = 192.168.122.2/24 lxc.network.ipv4.gateway = 192.168.122.1
Container fertigstellen
Nach der Erstellung des Containers machen wir ihn temporär zu unserer neuen Dateisystemwurzel:
$> chroot /var/lib/lxc/debian9/rootfs
Hier setzen wir zuerst das root-Passwort und legen danach einen einfachen Benutzer an:
$> passwd root
$> useradd -m -s /bin/bash tux
$> passwd tux
$> exit
Container benutzen
Dann können wir ihn starten und uns regulär einloggen:
$> lxc-start -n debian9
$> lxc-console -n debian9
Stoppen kann man ihn später von innen heraus mit ‚poweroff‘ oder von außen mit:
$> lxc-stop -n debian9
Der ssh-Server ist bereits installiert und läuft auch schon.
Jetzt folgen Nacharbeiten, so kann z.B. Software installiert werden:
$> apt-get update
$> apt-get install lsof
Unter Artix Linux u.a.
Stand: 2022-08-15
Genauso gut kann es unter Artix bzw. Arch Linux durchgeführt werden oder einer anderen modernen Distribution, wobei die zu installierenden Pakete dann evl. anders heißen:
$> pacman -S lxc lxcfs
Erst-Konfiguration
Container namens „devBeo“ erstellen (ein Devuan-Linux mit dem klassischen sysVinit):
$> lxc-create -t /usr/share/lxc/templates/lxc-download -n devBeo -- -d devuan -r beowulf -a amd64
Container-Konfigurationsdatei anpassen
$> vi /var/lib/lxc/devBeo/configDabei ist folgendes zu tun:
# Falls kein Netzwerk benötigt wird, auf 'none' setzen: lxc.net.0.type = none # Falls Netzwerk gewünscht ist, die jeweilige Schnittstelle anpassen, # hier soll z.B. eine vorhandene Docker-Bridge genutzt werden: #lxc.net.0.link = lxcbr0 lxc.net.0.link = docker0
Container konfigurieren:
Nach der Erstellung des Containers machen wir ihn wie vorhin temporär zu unserer neuen Dateisystemwurzel:
$> chroot /var/lib/lxc/devBeo/rootfs
Nun müssen wir hier wieder das root-Passwort setzen und einen einfachen Benutzer anlegen. Weiterhin müssen wir dafür sorgen, dass normaler Konsolen-Login (via /dev/getty) möglich wird:
$> passwd root
$> useradd -m -s /bin/bash tux
$> passwd tux
$> echo '1:2345:respawn:/sbin/getty 38400 console' >> /etc/inittab
$> exit
Container benutzen
Schließlich können wir ihn starten und uns regulär einloggen:
$> lxc-start -F -n devBeo