Von Michael Hafner auf Freitag, 17. Juli 2020
Kategorie: System Integration

Es muss nicht immer Docker sein

Linux-Container haben es nicht leicht. Im großen Stammbaum der Virtualisierungslösungen und hier speziell in der Familie der Containervirtualisierer könnte man Linux-Container (LXC) als sowas ähnliches wie die große Schwester von Docker bezeichnen. Meinetwegen auch den "großen Bruder" oder gerne auch das "adoleszente Familienmitglied (m/w/d)". Wie auch immer, während dem Nesthäkchen Docker nach der Geburt sofort die Sympathien der Anwender zugeflogen sind, tat sich die ältere Schwester immer etwas schwer, die Herzen der Virtualisierungswilligen zu erobern. Von vielen gar nicht erst beachtet, von anderen wegen ihrer vermeintlichen Sperrigkeit gemieden, standen (und stehen) die Linux-Container immer im Schatten von Docker.

Weniger Blackbox

Zu Unrecht, wie ich meine. Docker ist das perfekte Werkzeug, wenn es darum geht, mal eben schnell was auszuprobieren, ohne sich dabei das mühsam konfigurierte System zu zerschießen oder eine bestimmte Anwendung mit genau definierter Laufzeitumgebung bereitzustellen. Das kann LXC natürlich auch, aber im Gegensatz zu Docker fühlen sich die Linux-Container hier weniger wie eine Blackbox an, sondern mehr wie ein "echtes" (virtuelles) System. Was dem Kunden mit seinem maßgeschneiderten Tomcat-Container oder dem dockernden Java-Entwickler zwar relativ egal ist, dem wartungswilligen Admin, der eine Herde Container zu hüten hat, die Sache aber nicht gerade einfacher macht.

Mehr Container Management

Eines hat Docker aber von Anfang an richtig schön gemacht: Die komfortable Verwaltung der Container-Images. Das sollte auch LXC können und noch viel mehr, dachte sich dann vor ein paar Jahren die Canonical Ltd (ja genau, die mit Ubuntu!) und veröffentlichte Anfang 2015 LXD, den „next generation system container manager". Was ist das nun genau? Im Grunde genommen eigentlich nur ein Daemon, der über einen lokalen Linux Socket und das Netzwerk (falls gewünscht) eine REST API bereitstellt, mit der mittels eines Client-Tools kommuniziert werden kann. Das integrierte Client-Tool hört übrigens interessanterweise auf den Name lxc. Im Hintergrund lagert der Daemon dann alle Anweisungen zum Verwalten der Container an LXC aus. Das klingt jetzt erstmal wie „von hinten durch die Brust ins Auge", aber LXD kann natürlich noch viel mehr, als nur LXC zu sagen, dass ein Container gestartet oder gestoppt werden soll, was der Anwender mit LXC allein auch schaffen würde. Der Alleinunterhalter LXD hat zudem Hits im Repertoire wie

Installiert und aktualisiert wird LXD am einfachsten über Snap, ein distributionsübergreifendes Softwareverteilungssystem, das ebenfalls – wer hätte es gedacht – von Canonical entwickelt wird. Für Hartgesottene, die gerne dem Go-Compiler beim Arbeiten zusehen, gibt es aber auch den Sourcecode in einem Git-Repository.

Ich empfehle allen, die bereits mit LXC arbeiten aber LXD (noch) nicht kennen, sich das mal anzusehen – es macht das Leben mit Linux-Containern um einiges leichter und effizienter. Auch Neueinsteiger, die niedrige Einstiegshürden bevorzugen, sind bei LXD bestens aufgehoben.

Wer jetzt Lust auf Mehr (im wahrsten Sinne des Wortes) hat und auch mal ein Tänzchen mit der großen Schwester wagen will, dem empfehle ich die folgenden weiterführenden Links. Allen anderen weiterhin ein „fröhliches Dockern".

Weiterführende Links

https://linuxcontainers.org

https://lxd.readthedocs.io/en/latest/

https://ubuntu.com/blog/lxd-4-0-lts-stable-release-is-now-available

https://github.com/lxc/lxd

Kommentare hinterlassen