## 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.