Linux-Container mit LXC

Allgemeine Einstellungen

Für die Einrichtung von lxc habe ich in /etc/lxc/lxc.conf den Ort für die Container angepasst, da ich sie gern unter /srv und nicht /var hätte, weil es sich bei mir zum Beispiel besser in die Backup-Skripte einpasst.

lxc.lxcpath=/srv/lxc

Ein System erstellen

Folgender Befehl erstellt ein neues Debian-System. Das Paket lxc muss zusätzlich installiert werden, da sonst lxc-execute aus einem Unstable heraus nicht funktioniert.

lxc-create -t debian -n debian.stable -- --mirror=https://ftp.de.debian.org/debian --packages=lxc

Um einen 32-Bit-Container zu erstellen, kann man die Architektur als Option angeben oder man stellt dem lxc-create-Befehl ein linux32 voran, das für den aufgerufenen Befehl die Architektur umschaltet.

lxc-create -t debian -n debian32.stable -- -a i386 --mirror=https://ftp.de.debian.org/debian --packages=lxc

LXC-Befehle um mit einem System zu arbeiten

Netzwerkeinstellungen

Um die Netzwerkeinstellungen unverändert vom Hauptsystem zu übernehmen, muss man in der Container-Config-Datei die Option lxc.network.type = none setzen.

Dateisysteme einbinden

Man kann Teile des Dateisystems auch in die LXC-Umgebung einbinden. In der Container-Config-Datei setzt man dafür die Einträge lxc.mount.entry wie die Einträge in der fstab, wobei das Ziel (2. Teil) relativ zum Wurzelverzeichnis des Containers angegeben werden muss.

lxc.mount.entry = /home ./home none ro,bind 0.0
lxc.mount.entry = /mnt/other ./mnt none ro,bind 0.0

X11-Anwendungen per SSH ausführen

Zum Ausführen von grafischen Anwendungen aus einer LXC-Umgebung heraus muss man in der Umgebung das Paket xauth installiert haben und für den SSH-Server die Option AddressFamily inet in der sshd_config setzen (sonst meldet sshd »Failed to allocate internet-domain X11 display socket error.«).

Die Programme kann man dann vom Hauptsystem mit dem laufenden X-Server aus per ssh starten:

ssh -Y root@127.0.0.1 xeyes

Ein anderer Ansatz wird unter LXC 1.0: GUI in containers beschrieben.