Essential Guide

Linux-Container: Grundlagen, Risiken und Anwendungsfälle der Container-Virtualisierung

Eine umfassende Auswahl von Artikeln, Videos und mehr, die von unseren Redakteuren gewählt wurden.

Mit CentOS und systemd-nspawn in fünf Minuten zum ersten Linux-Container

Container-Virtualisierung muss nicht kompliziert sein: Diese Anleitung führt in fünf Minuten mit CentOS und systemd-nspawn zum ersten Container.

Für bestimmte Workloads bieten Linux-Container spannende neue Möglichkeiten und vor allem eine sehr große Flexibilität...

und Skalierbarkeit. Neben dem derzeit populärsten Beispiel Docker gibt es auf dem Markt mittlerweile eine große Auswahl an Lösungen zur Container-Virtualisierung, aber keine ist so einfach verfügbar und so schnell bereitzustellen wie systemd-Container, die per systemd-nspawn erstellt werden. In nur fünf Minuten kann man hiermit bereits einen ersten Linux-Container bereitstellen.

Die beste Umgebung für systemd-nspawn wäre ein Testsystem mit CentOS 7.1 oder später. Um systemd-nspawn optimal ausführen zu können, sollte eine aktuelle Version von CentOS verwendet werden. Im ersten Schritt wird ein Verzeichnis benötigt, das systemd-nspawn als Root-Verzeichnis für das Container-System verwenden kann. Man könnte hier zum Beispiel /var/lib/container verwenden, erstellt wird dieses Verzeichnis über den Befehl mkdir /var/lib/container.

Bevor man zum nächsten Schritt übergeht, empfiehlt sich das Deaktivieren von SELinux. Zumindest sollte aber der Permissive Mode aktiviert werden, dies kann über den Befehl setenforce Permissive erfolgen. Damit wird das Ändern des Passwortes innerhalb der systemd-Umgebung wesentlich erleichtert, immerhin geht es in diesem Beispiel auch um systemd-nspawn, nicht um SELinux.

Als nächstes muss ein minimales Betriebssystem in dem zuvor erstellten Root-Verzeichnis installiert werden, der Befehl hierzu lautet beispielsweise yum -y --releaseserver=7Server --installroot=/var/lib/container/centos7 install systemd passwd yum redhat-release vim-minimal. Mit diesem Befehl werden die benötigten Pakete in das zuvor festgelegte Root-Verzeichnis kopiert. Dabei sollte man bedenken, dass die hierfür gewählten Pakete wirklich nur ein absolutes Minimum darstellen, um die Machbarkeit der Container-Virtualisierung mit systemd-nspawn aufzuzeigen. Nach dem Ausführen des yum-Befehls können natürlich je nach Bedarf weitere Pakete installiert werden.

Nach der Installation aller gewünschten Pakete kann der Container gestartet werden. Bei der ersten Ausführung sollte der Befehl systemd-nspawn -D /var/lib/container/centos7 –b verwendet werden. Hierdurch wird der Container hochgefahren und die Umgebung fragt nach einem Root-Passwort – das bisher aber noch gar nicht vergeben wurde.

Das Problem besteht darin, dass man sich im chroot-jail befindet und innerhalb der chroot-Umgebung das Passwort des Root-Anwenders auf dem Container-Host-OS nicht geändert werden kann. Damit bleibt als einzige Lösung, eine andere Shell zu öffnen und den systemd-nspawn-Prozess wieder zu beenden.

Um nun zu einer vollständigen Umgebung zu wechseln, in der man sich tatsächlich einloggen kann, muss man dem systemd-nspawn-Befehl den passwd-Befehl anhängen. Wenn man dann schon dabei ist, sollten auch gleich einige nichtbenötigte Services deaktiviert werden. Durchgeführt wird dies mit dem folgenden Befehl:

systemd-nspawn -D /var/lib/container/centos7 passwd; systemctl disable kdump postfix firewalld tuned

Nach diesen Änderungen lässt sich nun das Root-Passwort in der chroot-Umgebung ändern. Nachdem dies erfolgt ist, kann man wieder zum Host-Betriebssystem wechseln und dort erneut den Befehl systemd nspawn -D /var/lib/container/centos7 –b ausführen.

Innerhalb von Sekunden hat man so einen ersten Container aufgesetzt, den man auch sofort nutzen kann. Mit systemd-analyze lässt sich anschließend zum Beispiel herausfinden, wie lange das Booten des Containers gedauert hat. Es mag sich hierbei um eine Art Machbarkeitsstudie handeln, aber schon mit dieser Container-Umgebung können dann ganz  nach Belieben Services angeboten werden. Zum Herunterfahren des Containers werden die gleichen Befehle genutzt wie bei virtuellen Maschinen, nämlich shutdown oder poweroff mit den üblichen Attributen.

Dieses Beispiel zeigt, dass man mit systemd-nspawn und CentOS in wenigen Minuten eine erste Container-Umgebung aufsetzen kann und dabei letztlich keine komplexe Hardware oder Software braucht. Alles, was dafür benötigt wird, bringen moderne Betriebssysteme von Haus aus bereits mit. Gerade systemd-nspawn dürfte aufgrund des einfachen Prozesses zur Container-Bereitstellung ein ernsthafter Mitspieler auf dem Markt für Container-Lösungen werden.

Weitere Artikel zu systemd:

Einführung in das Linux-Management mit systemd

Grundlagen des Service-Managements mit systemd

Container-Management mit systed als Alternative zu Docker

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im November 2015 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Essential Guide

Linux-Container: Grundlagen, Risiken und Anwendungsfälle der Container-Virtualisierung

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close