2025-03/LXC.md
2025-03-27 11:39:57 +01:00

1.6 KiB

LXC

LXC == LinuX Container

Mit den selben Kernel-Mechanismen ("cgroups", "IP namespaces") wie z.B. Docker wird ein - in z.B. ein Verzeichnis installiertes - Linux-System gestartet und dabei vom Hauptsystem getrennt.

Auf jeder VM sind ~25 LXC(ontainer) mit verschiedenen Distributionen installiert. Die Distribution sollte sich aus den Namen der Container ableiten lassen.

Anzeigen der Container

root@tn00-purple:~# lxc-ls -f
NAME          STATE   AUTOSTART GROUPS  IPV4          IPV6 UNPRIVILEGED…
tn00-alma8    RUNNING 1         ansible 192.168.1.138 -    false
tn00-alpine3b RUNNING 1         ansible 192.168.1.194 -    false
tn00-alpine3c RUNNING 1         ansible 192.168.1.139 -    false
tn00-alpine3d RUNNING 1         ansible 192.168.1.152 -    false
tn00-alpine3e RUNNING 1         ansible 192.168.1.134 -    false
tn00-arch     RUNNING 1         ansible 192.168.1.192 -    false
[...]

Container in /etc/hosts hinzufügen

Bitte nur einmal ;) ausführen!

sudo lxc-ls -f -F ipv4,name | grep -v NAME | sudo tee -a /etc/hosts

Wechseln in den Container

root@tn00-purple:~# lxc-attach tn00-alpine3b
~#  cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.11.0
PRETTY_NAME="Alpine Linux v3.11"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
~# ^D

Beenden mit Strg-D (Shell beenden)

Zugriff auf Dateien im Container

Die Container sind auf File-Basis unter /var/lib/lxc/CONTAINERNAME/ installiert, das File-System liegt dort jeweils im Verzeichnis rootfs.

Ein cat /var/lib/lxc/tn00-alpine3b/rootfs/etc/os-release im Host würde also die gleiche Dateien anzeigen wie oben.