12.2.2.3. Das System einrichten
Lassen Sie uns jetzt das von dem Container zu verwendende Dateisystem einrichten. Da dieser „virtuelle Rechner“ nicht direkt auf der Hardware laufen wird, sind im Vergleich zu einem Standard-Dateisystem einige Feineinstellungen vorzunehmen, insbesondere was den Kernel, die Geräte und Konsolen betrifft. Glücklicherweise enthält das Paket lxc Skripten, die diese Konfigurierung weitestgehend automatisieren. So installieren zum Beispiel die folgenden Befehle (die das Paket debootstrap erfordern) einen Debian-Container:
root@scouzmir:~#
mkdir /var/lib/lxc/testlxc/
root@scouzmir:~#
/usr/lib/lxc/templates/lxc-debian -p /var/lib/lxc/testlxc/
debootstrap is /usr/sbin/debootstrap
Checking cache download in /var/cache/lxc/debian/rootfs-i386 ...
Downloading debian minimal ...
I: Retrieving Release
I: Retrieving Packages
[...]
Removing any system startup links for /etc/init.d/hwclockfirst.sh ...
/etc/rcS.d/S08hwclockfirst.sh
Root password is 'root', please change !
root@scouzmir:~#
Man beachte, dass das Dateisystem zunächst in /var/cache/lxc
erstellt und dann in sein Zielverzeichnis verschoben wird. So lassen sich mehrere identische Container wesentlich schneller erstellen, da sie nur kopiert werden müssen.
Man beachte auch, dass der Befehl lxc-debian
, der mit Squeeze ausgeliefert wird, leider ein Lenny-System erstellt und nicht ein Squeeze-System, wie man erwarten würde. Dieses Problem kann umgangen werden, indem man einfach eine neuere Version des Pakets (0.7.3-1 oder höher) installiert.
Das neu erstellte Dateisystem enthält nun ein minimales Debian-System, angepasst an die zuvor erwähnte „einfache“ Netzwerkkonfiguration. Für die „üppige“ Konfiguration benötigt die Datei /var/lib/lxc/testlxc/rootfs/etc/network/interfaces
einige Anpassungen; wichtiger ist jedoch, dass die Netzwerkschnittstelle, die der Container sieht, nicht die physische Schnittstelle des Hosts sein darf. Dies kann konfiguriert werden, indem einige lxc.network.*
-Einträge zur Konfigurationsdatei des Containers, /var/lib/lxc/testlxc/config
, hinzugefügt werden:
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 4a:49:43:49:79:20
Diese Einträge bedeuten jeweils, dass eine virtuelle Schnittstelle in dem Container erzeugt wird; dass sie automatisch in Gang gesetzt wird, wenn der besagte Container startet; dass sie automatisch mit der br0
-Bridge auf dem Host verbunden wird; und dass ihre MAC-Adresse wie angegeben lautet. Falls diese letzte Angabe fehlt oder deaktiviert ist, wird eine zufällige MAC-Adresse erzeugt.