Eine ausführliche Einführung in LXD-Container unter Ubuntu

Container sind aus vielen Gründen nützlich. Es isoliert Anwendungen vom Rest des Systems. Sie sind portabel und leicht zu klonen und/oder auf andere Betriebssysteme zu portieren. Und für den Fall Linux , funktionieren sie unter jeder Distribution gleich, ohne dass Änderungen erforderlich sind. Wenn Sie einen Container transportieren müssen RedHat zu Ubuntu Es sollte nur ein einfacher Kopiervorgang sein.

Docker Dabei handelt es sich um eine beliebte Lösung, die darauf ausgelegt ist, eine einzige Anwendung zu enthalten: beispielsweise einen Server MySQL-Datenbank. Doppelgänger LXD In gewisser Weise ist es so konzipiert, dass es ein vollständiges Betriebssystem enthält. Dies macht es für einige Szenarien nützlich. Das können Sie zum Beispiel Erstellen Sie einen Container LXD und installieren Sie einen Datenbankserver und einen http-Server. Dann können Sie Erstellen Sie eine WordPress-Website intern. Jetzt können Sie von Cloud zu Cloud wechseln, indem Sie einfach diesen LXD-Container bei Bedarf verschieben, wenn Sie mit Ihrem vorherigen Anbieter nicht zufrieden sind. Da es einfach ist, einen Container zu klonen, können Sie sogar einen mounten deine Website An mehrere Cloud-Anbieter, um ein redundantes, hochverfügbares Setup zu schaffen.

LXD funktioniert nicht auf virtuellen Maschinen wie QEMU أو VirtualBox , was bedeutet, dass es sehr schnell ist und eine nahezu lokale Ausführungsgeschwindigkeit bietet.

Installieren und konfigurieren Sie LXD

Öffnen Sie Terminal und installieren Sie LXD sowie die ZFS-Dienstprogramme, die Ihnen dabei helfen, einige Prozesse zu beschleunigen und Speicherplatz zu sparen, wenn Sie mit Containern arbeiten.

sudo apt install zfsutils-linux lxd

Starten Sie die LXD-Konfiguration.

sudo lxd init

Drücken Sie die EINGABETASTE, um Standardwerte anzugeben.

Für die Größe des neuen Ringgeräts in GB (mindestens 1 GB) [Standard = 15 GB] können Sie einen anderen Wert wählen, z. B. „50 GB“, wenn Sie wissen, dass Sie viele Container erstellen werden.

Suchen Sie das LXD-Image und führen Sie es aus

So listen Sie alle Ubuntu-Images auf:

lxc image list ubuntu: arch=amd64

Es wird viele Ergebnisse geben. Du kannst wählen arch = amd64 weglassen Wenn Sie Bilder für andere Plattformen benötigen, z. B. ARM-Prozessoren (Raspberry Pi-Geräte verwenden diese Architektur).

Im vorherigen Bild wurden die Ergebnisse eingeschränkt (mit |head), um sie leichter lesbar zu machen. Ein Fingerabdruck wurde hervorgehoben Ubuntu 18.04 (84a71299044b). Wenn Sie einen Container mit dieser Distribution ausführen möchten, wäre der Befehl:

lxc launch ubuntu: 84a71299044b

An diesem Punkt wird der Fehler „Berechtigung verweigert“ zurückgegeben. Es muss in der Gruppe „lxd“ sein. Ihr Benutzer ist bereits zu dieser Gruppe hinzugefügt, aber um ihn zu aktivieren, müssen Sie sich abmelden und erneut anmelden. Wenn Sie das vermeiden möchten, verwenden Sie diesen Befehl und ersetzen Sie „user“ durch Ihren Benutzernamen:

exec su - Benutzer

Jetzt funktionieren lxc-Befehle, ohne dass sudo erforderlich ist.

Ausführen von LXD-Containern mit Nicht-Ubuntu-Distributionen

Dieser Befehl zeigt Ihnen, welche anderen Distributionen verfügbar sind:

lxc image list images: arch=amd64

Um ein Bild zu starten, können Sie anstelle eines Fingerabdrucks auch einen Alias ​​verwenden, sofern in dieser Liste einer verfügbar ist.

lxc Startabbilder:debian/9

Wenn Sie am Ende eine Zeichenfolge anhängen, können Sie einen Namen für Ihren Container wählen:

lxc launch images:debian/9 wordpress-site

LXD-Containerverwaltung

So listen Sie alle Container auf:

lxc-Liste

ist eine SpalteIPV4„ ist besonders wichtig, wenn in diesem Zustand Dienste ausgeführt werden. Zum Beispiel, wenn ein Server Apache http Auf der Instanz wird der Eintrag „10.234.232.246” im Browser zeigt die im Container gehostete Website an.

So stoppen Sie den Container:

lxc stop name_of_container

Dies kann bei Nicht-Ubuntu-Distributionen lange dauern (oder fehlschlagen). Besorgen Sie sich am besten einen Deckel für den Behälter und setzen Sie ihn ein, wenn Sie hineinkommen systemctl Ausschalten Um es zu stoppen.

Wenn alles andere fehlschlägt, können Sie einen Stopp erzwingen mit:

lxc stop name_of_container --force

Um es zu starten:

lxc start name_of_container

So navigieren Sie in Ihrem Container:

LXC-Shell Name des Containers

Sie können Programme installieren mit „sudo apt installieren” und alles andere tun, was Sie auch bei einer regulären Linux-Distribution tun würden, wie zum Beispiel die Konfiguration eines Servers Apache. Wenn Sie den Container verlassen möchten, geben Sie einfach Folgendes ein:

wunsch

Übertragen Sie Dateien zu/von LXD-Containern

So laden Sie eine Datei in Ihren Container hoch:

lxc file push /Pfad/zur/lokalen/Datei Name_des_Containers/Pfad/zur/hochgeladenen/Datei

Geben Sie den Namen der zu erstellenden Datei an, nicht nur das Verzeichnis, in das Sie sie hochladen möchten. Hier ist ein Beispiel:

lxc file push lxd-apt-install.png accurate-colt/var/www/website/upload.png

So laden Sie ein Verzeichnis anstelle einer Datei hoch:

lxc file push /Pfad/zum/lokalen/Verzeichnis Name_des_Containers/Pfad/zum/remote/Verzeichnis --recursive --verbose

Beispiel:

lxc file push /bin accurate-colt/tmp --recursive --verbose

So laden Sie ein Verzeichnis von Ihrem Container auf Ihr Hauptbetriebssystem herunter:

lxc file pull name_of_container/path/to/remote/directory /path/to/local/directory --recursive --verbose

Beispiel:

lxc file pull accurate-colt/tmp /tmp --recursive --verbose

Fazit

Dies deckt ab Hauptsächliche Verwendung von LXD-Containern. Es gibt erweiterte Funktionen wie Schnappschüsse und Zurückspulen sowie Ressourcenbeschränkungen wie Zentralprozessor وRAM , Klonen von Containern usw. Es kann in einem zukünftigen Tutorial behandelt werden, wenn wir feststellen, dass sich die Leser für das Thema interessieren.

Nach oben gehen