Open Source im professionellen Einsatz
Linux-Magazin 11/2015
© Fotograf, 123RF.com

© Fotograf, 123RF.com

LXC-1.0-Workshop

Schlank und schnell

Mit LXC 1.0 erschien Anfang 2014 die erste stabile Version zur Verwaltung von Linux-Containern. Ist die leichtgewichtige Container-Lösung mittlerweile produktionsreif? Der Workshop macht den Selbstversuch.

736

Seit Kernel 2.6.29 lassen sich Linux-Container direkt mit einem Mainline-Kernel nutzen. Container gab es allerdings mit Virtuozzo [1] und Open VZ [2] unter Linux bereits lange vorher. Der Unterschied besteht darin, dass der Linux-Kernel heute alle notwendigen Komponenten zum Betrieb von Containern im Gepäck hat und keine Patches mehr benötigt. Kernel-Namespaces isolieren die Container untereinander, Cgroups limitieren die Ressourcen und kümmern sich um die Prioritäten.

Solide Basis

Seit Februar 2014 gibt es auch eine erste stabile Version des Userspace-Tools LXC [3], mit dem Admins Container verwalten. Ubuntu 14.04 hat LXC 1.0 an Bord, das die Entwickler als stabile Version empfehlen und für das sie bis April 2019 Support leisten (Abbildung 1). Wollen Sie LXC unter Ubuntu Trusty installieren, greifen Sie am besten zu den Server-Images der Version 14.04.1 [4]. Der hier eingesetzte Kernel 3.13 erhält fünf Jahre LTS-Support, auf die Kernel neuerer LTS-Upgrades trifft das nicht zu. Nach der Installation holen Sie die LXC-Tools nach:

apt-get install lxc

Dadurch landen unter anderem die Pakete aus Tabelle 1 auf Ihrem Rechner.

Tabelle 1

LXC-Pakete

Paketname

Einsatzzweck

»bridge-utils«

Erzeugt das virtuelle Netzwerkdevice (»veth« ).

»cgmanager«

Ermöglicht die Cgroup-Verwaltung über ein D-Bus-Interface.

»debootstrap«

Hilft beim Installieren Debian-basierter Container.

»dnsmasq-base«

Ermöglicht ein minimales Out-of-the-Box-NAT-Netzwerk für Container (»lxcbr0« ).

»liblxc1«

Das neue LXC-API.

»lxc-templates«

Templates, die einfache Container erstellen.

Der erste Container

Nach einer erfolgreichen Installation erstellen Sie den ersten Container mit nur einem schlichten Kommando:

lxc-create -t ubuntu -n ubuntu_test

Vergessen Sie nicht, zuvor Rootrechte zu erlangen, mit denen Sie die meisten der im Artikel vorgestellten Befehle ausführen müssen. Rufen Sie »lxc-create« anschließend erstmalig für eine bestimme Distribution auf, muss das Hostsystem die erforderlichen Pakete einmal herunterladen. Es speichert sie in »/var/cache/lxc/« zwischen. Geben Sie den Befehl »lxc-create« erneut ein, legt das System innerhalb von ein paar Sekunden einen Container an.

Abbildung 1: Über ein Webpanel auf Flask-Basis lassen sich die Container mit Hilfe der VM auf der Heft-DVD verwalten.

Tippen Sie »lxc-create -t ubuntu -h« ein, zeigt LXC Template-spezifische Optionen. Mit ihrer Hilfe wählen Sie etwa die Debian- oder Ubuntu-Release oder einen speziellen Mirror. Einen Container mit Debian Wheezy als Grundgerüst erzeugt der folgende Aufruf:

lxc-create -t debian -n debian_test -- -r wheezy

Standardmäßig legt Ubuntu als Wirtssystem Container direkt im bereits vorhandenen Dateisystem unter »/var/lib/lxc/Container-Name« ab. Im jeweiligen Container-Unterverzeichnis warten zumindest eine Datei namens »config« sowie ein Verzeichnis namens »rootfs« . Bei vielen Distributionen kommt noch die Datei »fstab« hinzu, die Mountpunkte für die Container verwaltet.

Wie der Name nahelegt, konfiguriert LXC 1.0 den Container mit Hilfe der »config« -Datei. Die Container-Verwaltung erlaubt zudem den Einsatz von Includes in der Konfiguration (über »lxc.include« ), was sehr minimalistische Standard-Konfigurationen für Container möglich (Abbildung 2) macht.

Abbildung 2: Die Standardkonfiguration für einen Ubuntu-Container.

Befindet sich der Container auf der Festplatte, informiert Sie das Hostsystem darüber, wie der Standardlogin für Ubuntu (User: »ubuntu« , Passwort: »ubuntu« ) respektive Debian (User: »root« und Passwort: »root« ) lautet.

Sie aktivieren den Container anschließend mit dem folgenden Kommando, wobei die Option »-d« sicherstellt, dass er im Hintergrund startet:

lxc-start -n debian_test -d

Analog dazu hält das Kommando »lxc-stop« den Container wieder an. In der Regel schickt LXC hierbei ein »SIGPWR« -Signal an den Initprozess, der den Container sauber herunterfährt. Mit Hilfe der Option »-k« erzwingen Sie das Herunterfahren.

Weil sie keine eigenen Kernel benötigen, starten Container in der Regel innerhalb von wenigen Sekunden. Über »lxc-console -n debian_test« landen Sie beim Loginprompt. Alternativ bringt Sie ein »lxc-attach -n debian_test« ohne Passwortabfrage direkt auf die Konsole. Das Kommando »lxc-ls --fancy« gibt einen guten Überblick über die vorhandenen Container (Listing 1).

Listing 1

Vorhandene Container anzeigen

01 root@ubuntu:/var/lib/lxc# lxc-ls --fancy
02 NAME          STATE    IPV4        IPV6  AUTOSTART
03 --------------------------------------------------
04 debian_test   RUNNING  10.0.3.190  -     NO
05 debian_test2  STOPPED  -           -     NO
06 ubuntu_test   STOPPED  -           -     NO

Soll ein bestimmter Container beim Start des Basissystems automatisch hochfahren, aktivieren Sie dies in der Container-Konfiguration (Abbildung 2):

lxc.start.auto = 1
lxc.start.delay = 0

Wie im Listing zu sehen ist, lässt sich an dieser Stelle auch eine Startverzögerung integrieren.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • LXC

    LXC legt mit wenig Overhead Systemcontainer an, um darin beispielsweise sicherheitskritische Dienste zu isolieren. Als Anwender müssen Sie jedoch einige Maßnahmen ergreifen, um ein System im System aufzubauen – und überhaupt hineinzukommen.

  • Linuxcon Europe: Linux Containers in der Praxis

    Auf der Linuxcon in Barcelona hat Christoph Mitasch vom Serverhersteller Thomas Krenn in die leichtgewichtige Virtualisierung mit Linux Containers (LXC) eingeführt.

  • Etablierte Container

    Container-Virtualisierung ist keine Erfindung der Gegenwart. Tatsächlich existieren solche Lösungen für Linux bereits seit Jahren. Das Linux-Magazin stellt die Platzhirsche und ihren Charakter vor.

  • Dichte Container

    David Strauss' Firma Pantheon liefert Contentmanagement-Systeme auf Basis von Drupal und Wordpress massenhaft aus. Container und entsprechende Kernelfunktionen helfen ihm, die Sites auf Servern in großer Dichte zu betreiben. Den Gründen für und seine Erfahrungen mit dem Setup widmet sich der Artikel.

  • Systemd-nspawn

    Ursprünglich als Tool für Systemd-Tester gedacht, mausert sich Systemd-nspawn zu einer eigenständigen Containerlösung. Bei Rkt von Core OS ist es bereits als Low-Level-Tool im Einsatz. Rkt-Entwickler Jonathan Boulle stellt Systemd-nspawn vor.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.