GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Erste Schritte mit LXD-Containern unter Ubuntu 16.04

Warum LXD?

Es ist kein Geheimnis, dass Container in der Linux-Welt derzeit angesagt sind. Sie entwickeln sich schnell zum Rückgrat der Cloud und lassen DevOps-Träume wahr werden. Trotzdem erscheint es Canonical auf den ersten Blick etwas überflüssig, in einer leicht von Docker dominierten Welt ein neues Containersystem für Ubuntu zu entwickeln. Warum haben sie es dann getan? Um einen Mittelweg zwischen traditionellen virtuellen Maschinen und Docker zu füllen. Canonical hat es selbst gesagt:„Durch die Kombination der Geschwindigkeit und Dichte von Containern mit der Sicherheit herkömmlicher virtueller Maschinen ist LXD von Canonical der Container-Hypervisor der nächsten Generation für Linux.“ Darüber hinaus können Docker-Container innerhalb von LXD-Containern ausgeführt werden, was potenziellen Containerkonfigurationen eine weitere Dimension hinzufügt.

LXD ist eine Erweiterung des bestehenden LXC-Linux-Container-Hypervisors mit einem eigenen Toolset, das eine ähnliche Beziehung zum ursprünglichen Projekt wie Ubuntu zu Debian hat, mit dem Ziel, vorhandene großartige Software zu nehmen und sie für eine einfachere Verwendung zu optimieren. In der neuesten Ubuntu LTS-Version von Canonical, 16.04, ist LXD gut integriert und einfach zu verwenden, mit klaren und prägnanten CLI-Tools, die die Erstellung und Verwaltung von Containern nahtlos machen.

Erste Einrichtung

Der Einstieg in LXD unter Ubuntu 16.04 ist so mühelos wie erwartet. Canonical hat die Installation auf ein einziges Paket komprimiert, sodass es sich um eine Ein-Befehl-Installation handelt. Ein einfaches sudo apt-get install lxd erhalten Sie alles, was Sie für den Einstieg benötigen.



Um den Benutzer zur Gruppe „lxd“ hinzuzufügen, um die erforderlichen Befehle ohne Neustart ausführen zu können, führen Sie newgrp lxd aus . Danach ist alles klar, um mit der Einrichtung des LXD-Hypervisors fortzufahren. Ausführen von sudo lxd init beginnt mit der Einrichtung.


Der Ersteinrichtungsprozess besteht aus einer Reihe von Befehlszeileneingabeaufforderungen, die nach grundlegenden Informationen fragen, die zum Konfigurieren des LXD-Hypervisors erforderlich sind. Der Vorgang ist sehr unkompliziert und fragt nach Informationen wie Speichertyp, IP-Adresse, Portnummer, Passwort und ob die Verbindung überbrückt ist oder nicht.



Nach dieser Reihe von Eingabeaufforderungen wechselt das Setup zu einer textbasierten Oberfläche mit einer Reihe von Fragen zur Netzwerkkonfiguration des LXD-Hypervisors. Der Prozess erstellt überbrückte IPv4- und IPv6-Netzwerke mit benutzerdefinierten Subnetzen und DHCP. Auf diese Weise fungiert LXD als virtueller Router für alle darauf bereitgestellten Container und bietet einen zentralen Konfigurationspunkt für diese virtuellen Netzwerke.

Dies ist eindeutig eine der Zeiten, in denen LXD als Lösung „das Beste aus beiden Welten“ glänzt. Natürlich ist es auch schön, dass Canonical ein Konfigurationsmenü im Debian-Stil bietet, um durch den Prozess zu gehen und es fast gedankenlos einfach zu machen. Sobald die Konfiguration abgeschlossen ist, wird sie wieder an die Befehlszeile ausgegeben und gibt eine kurze Meldung aus, die besagt, dass sie erfolgreich war.


LXD-Images und -Container

Einen Container einrichten

Wie Docker ist LXD bildbasiert. Es bietet drei Hauptoptionen zum Abrufen von Bildern; Remote-, integrierte und lokale Importe. Es gibt mehrere Remote-Quellen, die mit LXD geliefert werden, sowie die lokalen Quellen. Um zu sehen, welche Quellen verfügbar sind, führen Sie einfach lxc remote list aus , und Sie erhalten eine praktische Befehlszeilentabelle mit Informationen zu derzeit verfügbaren Quellen.



Für die Zwecke dieses Artikels schienen die lokalen Quellen die beste und einfachste Option zu sein. Es werden saubere Ubuntu-Images bereitgestellt, die einen guten Ausgangspunkt für jede Bereitstellung darstellen. Dies ist ein weiterer dieser „Best of Both Worlds“-Momente. Anstatt einen abgespeckten Container zu haben, der auf die Ausführung einer einzelnen Anwendung zugeschnitten ist, sind LXD-Container näher an einer vollwertigen virtuellen Maschine.

Sie verfügen über Befehlszeilenzugriff und sogar die Möglichkeit, Pakete zu installieren. Gleichzeitig bietet LXD hervorragende Befehlszeilentools zum Verwalten von Containern und sogar zum Pushen und Ziehen von Dateien zu und von ihnen. Um einen Ubuntu 16.04-Container hochzufahren, führen Sie einfach lxc launch ubuntu:16.04 name-of-container aus . LXD ruft das Image ab, erstellt einen Container und startet den Container.


Arbeiten mit LXD-Containern

Es ist einfach, den Status des Containers mit lxc list zu überprüfen . Das Starten und Stoppen von Containern ist mit lxc stop name-of-container genauso einfach und lxc start name-of-container .



Einer der klaren Vorteile von LXD gegenüber herkömmlichen Containern wie Docker ist die Möglichkeit, laufende Container zu bearbeiten und zu aktualisieren, anstatt einen Container zusammenzupacken, bereitzustellen und in Ruhe zu lassen. Wenn es darum geht, Dateien zwischen dem Hostsystem und Containern zu übergeben, verfügt LXD über Push- und Pull-Befehle, mit denen Dateien hin und her übertragen werden können. Wenn etwas mehr Aufwand erforderlich ist, bietet LXD ein großartiges Befehlszeilentool für den Zugriff auf laufende Container und das Abrufen einer vollständigen Shell. Um Zugriff auf die Shell eines Containers zu erhalten, führen Sie lxc exec name-of-container -- /bin/bash aus .



In der Container-Shell gibt es ein vollständiges Linux-Dateisystem, und die Befehlszeile hat Zugriff auf die Tools, die mit dem Image gebündelt oder später auf den Containern installiert wurden. Dadurch können LXD-Container Updates und mehrere Anwendungen, einschließlich Docker, ausführen. Auf diese Weise könnte ein DevOps-Ingenieur einen LXD-Container bereitstellen, auf dem eine Datenbank und ein Webserver ausgeführt werden, sowie Docker mit mehreren Webanwendungen, die in Docker-Containern ausgeführt werden.
Das ist natürlich nur eine von vielen Möglichkeiten, aber der entscheidende Aspekt hier ist, dass LXD der Gleichung eine weitere Ebene hinzufügt und mehr Flexibilität bei der Konfiguration eines Software-Stacks bietet.

Schlussfolgerung

Selbst aus diesem einfachsten Versuch mit LXD geht hervor, dass Canonical sein Ziel erreicht hat, einen klaren Mittelweg zwischen vollständiger Linux-Virtualisierung und Docker-Containern zu schaffen. LXD ist ein Tool, das DevOps-Ingenieure ernsthaft in Erwägung ziehen sollten, ihrer Toolbox hinzuzufügen.


Ubuntu
  1. Erste Schritte mit Zsh

  2. Erste Schritte mit ls

  3. Erste Schritte mit PostgreSQL unter Linux

  4. Erste Schritte mit Multipass – Ausführen von Ubuntu-VMs

  5. Wie fange ich mit Juju an?

Erste Schritte mit dem ZFS-Dateisystem unter Ubuntu 19.10

Erste Schritte mit cPanel

Tutorial „Erste Schritte mit Azure Docker“.

Gewusst wie:Erste Schritte mit Ubuntu 14.04 LTS mit LAMP

Gewusst wie:Erste Schritte mit Ubuntu 14.04 LTS mit LEMP

Gewusst wie:Erste Schritte mit Windows-Containern und Docker