Das vollständige LXD -Tutorial

Das vollständige LXD -Tutorial
Linux unterstützt die Erstellung von Behältern, die als virtuelle Maschinen fungieren, aber vom Systemprozess getrennt sind. Behälter sind leicht und im Gegensatz zu virtuellen Maschinen benötigen sie keine CPU -Hardware -Virtualisierungsunterstützung. Daher können Sie schnell mehrere Container auf einem Server erstellen. Die Container können mit LXD erstellt und verwaltet werden.

In diesem Leitfaden wird alles über LXD erörtert. Wir werden sehen, wie Sie LXD installieren und Container erstellen und verwalten.

Was ist LXD?

Wenn Sie über Container sprechen, lag der größte Teil der Aufmerksamkeit auf Docker und Kubernetes. Ein älteres Containermodell, das Linux Container -Projekt (LXC), ist jedoch immer noch hilfreich, insbesondere sein LXD -Toolsatz.

Die Virtualisierung kann mit einem Hypervisor oder einem Container erreicht werden.

Hypervisoren wie Oracle VM bieten eine Abstraktionsebene, mit der die virtuelle Maschine isoliert auf die Host -System -Hardware und -Ressourcen zugreifen kann. Hypervisoren benötigen daher mehr Platz und lassen die Ressourcen des Host -Systems ab, um eine virtuelle Maschine auszuführen.

Im Gegensatz dazu teilen Linux -Container den Host OS -Kernel, was bedeutet, dass Container nicht die Ressourcen und den Speicher des Hosts verschwenden. Daher können viele Container auf einem Server ausgeführt werden und die Geschwindigkeit und Leistung für die Enthaltungen sind unübertroffen. Um diese Container zu erstellen und zu verwalten, benötigen Sie ein Containermodell wie LXD.

LXD bietet Containerunterstützung, indem eine virtuelle Version des Host -Betriebssystems simuliert werden. Auf diese Weise kann der Container ausgeführt werden, ohne die Ressourcen des Hosts zu beeinflussen.

Arbeiten mit LXD -Containern

Diese Anleitung erstellt mit LXD einen Linux -Container auf Ubuntu. Wir haben zwei Abschnitte, Installation und Erstellen des Containers.

1. Installieren von LXD

Um LXD zu installieren, müssen wir zuerst das APT -Repository aktualisieren.

$ sudo APT Update && sudo APT -Upgrade

Sobald das APT -Repository aktualisiert ist, können wir LXD als Snap -Paket installieren. Sie können die neueste stabile Version installieren oder die LXD -Version angeben, die Sie installieren möchten

$ sudo snap install lxd -channel = 4.0/stabil
oder
$ snap install install lxd -Channel = letztes/stabil

In diesem Beispiel wird die neueste stabile Version installiert. Das Snap -Paket lädt das Paket herunter.

Sobald der Download abgeschlossen ist, wird LXD installiert und eine Meldung angezeigt, die bestätigt, dass die Installation erfolgreich war.

Wenn LXD installiert ist, können Sie den LXD -Server verwalten, indem Sie den Benutzer zur LXD -Gruppe hinzufügen. Auf diese Weise müssen Sie keine Wurzel sein, um LXD -Container zu verwalten. Der folgende Befehl fügt den aktuellen Benutzer der LXD -Gruppe hinzu.

$ sudo adduser $ user lxd

Angenommen, der Benutzer ist bereits hinzugefügt. Sie erhalten eine Nachricht, die bestätigt, dass der Benutzer bereits Mitglied der LXD -Gruppe ist.

Wenn Sie dieser Gruppe einen anderen Benutzer hinzufügen möchten, verwenden Sie die folgende Syntax.

$ sudo adduser userername lxd

Beachten Sie, dass die Mitgliedschaft der LXD -Gruppe beim nächsten Anmeldung gelten wird. Sie können eine neue SH -Sitzung starten, damit sie angewendet werden kann. Alternativ können Sie die ausführen Newgrp Befehl, der das gleiche wie das Erstellen einer neuen SSH -Sitzung erreicht.

Als nächstes müssen wir die Mitgliedschaft der LXD -Gruppe mit der bestätigen Ausweis Befehl zur Ermittlung des von uns hinzugefügten Mitglieds, das wir hinzugefügt haben. Das folgende Beispiel bestätigt, dass der aktuelle Benutzer für unser Beispiel erfolgreich zur LXD -Gruppe hinzugefügt wurde.

Damit können wir unsere LXD -Container erstellen und verwalten.

2. Container erstellen und verwalten

Das erste ist zu überprüfen, ob auf Ihrem Server vorhandene LXD -Container vorhanden sind. Verwenden Sie dafür die Listenoption. Obwohl wir die LXD -Container abfragen, werden Sie feststellen, dass wir verwenden LXC Da LXD ein Toolset für das LXC -Projekt ist, das für die LXC -API ausgelegt ist.

$ lxcliste

In diesem Fall haben wir eine frische LXD -Installation und Sie werden in der Ausgabe feststellen, dass wir keine Container erstellen lassen. Angenommen, wir hatten einen Container, er würde neben seinen Details in der folgenden Tabelle aufgeführt sein.

Der erste Schritt besteht darin, die LXC -Umgebung mit der Initialisierung der LXC drin Möglichkeit.

$ sudo lxd init

Auf diese Weise richtet LXC die Umgebung automatisch ein, indem Sie sich mit unterschiedlichen Fragen befassen, um den Einrichtungsprozess zu unterstützen. Wenn Sie sich nicht sicher sind, wie Sie antworten, empfehle ich, die Eingabetaste zu drücken, um die Standardoptionen zu verwenden. Sie werden gut arbeiten. Alternativ können Sie das Setup konfigurieren und die Optionen für dieses Tutorial wie im Bild unten auswählen.

Sobald die LXC -Umgebung eingerichtet ist, können Sie Ihren ersten Container erstellen.

Außerdem können Sie verschiedene Informationen über die LXD -Container überprüfen. Zum Beispiel können Sie die verfügbaren Profile überprüfen, indem Sie sie auflisten.

$ LXC -Profilliste

Der Name für das Profil ist derjenige, der bei der Initialisierung der LXC -Umgebung angegeben ist. Wenn Sie mit der Standardnamen eingehen, wird Ihre Profilliste wie die unten angezeigt.

Verwenden Sie den folgenden Befehl, um die Speicherinformationen zu überprüfen.

$ LXC Speicherliste

Wenn Sie mehrere Profile haben, können Sie den Namen des Profils angeben, das Sie mit der Speicherinformationen abrufen möchten zeigen Option gefolgt vom Namen des Profils. Für unseren Fall wird unser Profil benannt Standard und wir können seine Details mit dem folgenden Befehl extrahieren.

$ lxc speicher anzeigen Standardeinstellung

Sie erhalten Speicherinformationen wie die Größe, den Namen des erstellten Pools usw.

Die gute Nachricht ist, dass LXD unterstützt, Container für verschiedene Linux -Verteilungen zu erstellen. Alles, was benötigt wird. Die verfügbaren Bilder, die Sie herunterladen können.

Das Repository enthält verschiedene Versionen jeder Distribution, sodass Sie auswählen können, welche Version und Architektur für Ihren Fall am besten geeignet sind. Verwenden Sie den folgenden Befehl, um alle verfügbaren Bilder für alle Distributionen aufzulisten.

$ lxc Bildliste Bilder:

Angenommen, Sie möchten die Bilder für eine bestimmte Distribose auflisten, verwenden Sie die Grep Befehl zum Filtern des Namens und der Version der Distribose, falls erforderlich. Hier filtern wir die Bilder für Ubuntu.

$ lxc Bildliste Bilder: | grep -i Ubuntu

Sie werden in der folgenden Ausgabe feststellen, dass wir verschiedene Versionen und Architekturen für die Ubuntu -Bilder erhalten. Sie können einen Container für eines der aufgelisteten Bilder erstellen.

Lassen Sie uns für dieses Tutorial schnell einen Container für erstellen Alpine/3.14. Alpine ist klein und Sie können den folgenden Befehl ausführen, um einen Container dafür zu erstellen. Abhängig von Ihrem Ziel können Sie eine Distribution für Ihren Fall verwenden.

$ LXC -Startbilder: Alpine/3.14/AMD64 LinuxHint1

Beim Erstellen des Containers müssen Sie den Namen des Containers angeben. Ersetzen Sie also LinuxHint1 durch den Namen, der für Ihren Container verwendet wird. Sie erhalten eine Nachricht, die bestätigt, dass der Container erstellt und gestartet wurde.

Überprüfen Sie, ob unser Alpine -Container erstellt wird, indem die verfügbaren Container über den Befehl List aufgelistet werden.

In dieser Ausgabe sehen wir den erstellten Container und sein Status läuft derzeit, was bedeutet, dass der Container aktiv ist, und wir können ihn verwenden. Dem erstellten Container wird auch IPv4 und IPv6 zugewiesen. Das Erstellen des Containers hängt von Ihrer Internetgeschwindigkeit und der Größe der Distribose ab, für die Sie einen Container erstellen.

Um den erstellten Container zu verwenden, können wir in einer Nicht-Login-Root-Sitzung darauf zugreifen, indem wir die verwenden Geschäftsführer Befehl. Für Alpine werden wir die verwenden Sch Dolmetscher. Für CentOs oder Ubuntu würde der /bin /bash besser funktionieren.

Greifen Sie also auf den erstellten Container zu, indem Sie seinen Namen wie gezeigt angeben.

$ sudo lxc execin linuxHint1 sh

Geben Sie das Passwort für das Host -System ein, um den Zugriff auf den Container zu autorisieren. Beachten Sie, dass wir uns jetzt im Container als Stammbenutzer befinden und einen beliebigen Befehl als Stamm ausführen können.

Wenn Sie die Sitzung schließen möchten, geben Sie ein Ausfahrt und drücken Sie die Eingabetaste. Beachten Sie, dass die Beendigung einer Containersitzung die Sitzung nicht stoppt. Es läuft immer noch im Hintergrund.

Sie können Containern eine virtuelle Netzwerkschnittstelle hinzufügen, indem Sie ihren Namen angeben. Lassen Sie uns zunächst die verfügbare Netzwerkschnittstelle für unser System mit dem folgenden Befehl auflisten.

$ LXC Network LS

Nehmen wir an, wir wollten eine neue virtuelle Schnittstelle für den ENP0S3 für unseren Container hinzufügen. Wir könnten dies erreichen, indem wir die Schnittstelle wie folgt anfügen.

$ LXC Network anhängen ENP0S3 LinuxHint1

Sobald Sie die Netzwerkschnittstelle hinzugefügt haben, öffnen Sie eine neue SH -Sitzung und überprüfen Sie, ob Ihre neue virtuelle Oberfläche widerspiegelt.

Mit LXD können Sie auch den Status und die Instanzen Ihres Containers überprüfen, um festzustellen, ob er ausgeführt oder angehalten wird. Verwenden Sie dafür die Liste -Fast Befehl.

$ lxc liste -schnappend

In der folgenden Ausgabe können wir sehen, dass unser LinuxHint1 -Container in der State -Spalte ausgeführt wird. Angenommen, wir hatten mehrere Behälter. Alle Fälle hätten ihre Zustände und andere Details in der folgenden Tabelle.

Sie können Ihren Container jederzeit starten, anhalten oder neu starten. Verwenden Sie den Behälter, um den Behälter zu stoppen stoppen Schlüsselwort gefolgt vom Container, den Sie anhalten möchten.

$ lxc stop linuxHint1

Angenommen, wir überprüfen den aktuellen Zustand unseres Containers. Wir werden feststellen, dass es gestoppt wird. In diesem Fall können wir es mit dem folgenden Befehl beginnen.

$ lxc starten linuxHint1

Wenn wir Probleme mit dem Container haben, können wir ihn schnell mit dem Neustartbefehl neu starten.

$ lxc starten Sie LinuxHint1 neu starten

Wenn Sie mit Containern arbeiten, können Sie die Informationen der LXD -Server verwenden die Info Befehl. Wenn Sie den Containernamen nicht angeben, zeigt die Ausgabe die Informationen für alle verfügbaren Container an. Wir können jedoch den Container angeben, den wir seine Informationen extrahieren möchten.

$ lxc Info LinuxHint1

Die abgerufenen Informationen enthält alle Details des Containers, z. B. den Namen des Containers, seinen Status, den Typ, die PID und die Ressourcen, die der Container verwendet. Diese Informationen sind entscheidend für die Verwaltung Ihres Containers.

Dennoch unterstützt LXD die Freigabe von Dateien an und von einem Container. Es könnte sein, dass Sie eine bestimmte Datei drücken möchten, die Sie erstellt haben, um sie aus dem Container zugänglich zu machen oder eine Datei aus dem Container zum Hostsystem zu ziehen. Verwenden Sie in diesem Fall die drücken oder ziehen Schlüsselwörter gefolgt vom Pfad zur Datei.

Im ersten Beispiel verlassen wir den Container und erstellen eine Datei mit dem Namen Namen.txt im Hostsystem. Als nächstes drücken wir die erstellte Datei in den Container. Trotzdem melden wir uns in den Container an und bestätigen, dass unsere Datei erfolgreich geschoben wurde.

Hier ist die Syntax, um eine Datei von einem Host in einen Container zu schieben.

$ LXC-Datei Push /path/ Container/destinationPath/On-Container

In ähnlicher Weise erstellt das folgende Beispiel ein Skript im Container. Anschließend ziehen wir das erstellte Skript aus dem Container zum Hostsystem im aktuellen Verzeichnis. Der letzte Befehl listet den Inhalt des aktuellen Verzeichnisses auf dem Host auf, um zu bestätigen, dass wir die Datei erfolgreich gezogen haben.

$ lxc Datei Pull Container/Pfad/to-file path/towestination-on-Host

Das Letzte ist zu wissen, wie man den erstellten Container löscht, wenn er nicht mehr notwendig ist. Zuerst müssen Sie den Laufbehälter stoppen.

Löschen Sie es nach dem Stopp mit dem folgenden Befehl.

$ lxc Containername löschen

Hier geht es darum, Container mit LXD zu erstellen und zu verwalten. Wenn Sie mit LXD arbeiten, öffnen Sie die Hilfeseite, um zu sehen, welchen Befehl Sie für einen bestimmten Zweck verwenden können. Außerdem können Sie die Hilfeseite für einen bestimmten Befehl anzeigen.

Abschluss

LXD ist ein Containermodell, das eine REST -API zur Unterstützung der Verwaltung von LXC -Containern bietet. Sie können LXD als Snap -Paket installieren und eine LXC -Umgebung initialisieren, die ideal für die Erstellung Ihrer LXD -Container ist. Dieser Beitrag hat ein praktisches Tutorial zu allem über LXD angeboten. Wir haben besprochen, was LXD bedeutet, seine Installation, Erstellen und Verwalten von Containern und wie Sie den erstellten Container löschen.