Installieren Sie LXC (Linux Container) in Rhel, Rocky & Almalinux

Installieren Sie LXC (Linux Container) in Rhel, Rocky & Almalinux

LXD wird als Container- und Virtual Machine Manager der nächsten Generation beschrieben, der für Linux-Systeme, die in Containern oder als virtuelle Maschinen ausgeführt werden.

Es bietet Bilder für eine übermäßige Anzahl von Linux -Verteilungen mit Unterstützung für eine große Auswahl an Speicher -Backends und Netzwerktypen. Es bietet auch die Möglichkeit, die Bilder auf einem einzelnen PC/Laptop und sogar auf einer Cloud -Instanz zu installieren.

LXD Ermöglicht Ihnen, Container und VMs auf drei Arten zu verwalten. Sie können das nutzen LXC -Client oder Befehlszeilen-Tool, eine REST-API oder sogar Integrationen von Drittanbietern.

LXD -Funktionen

Bemerkenswert LXD Features sind:

  • LXD ist bildbasiert mit Bildern für eine große Auswahl von Linux-Verteilungen.
  • Es wird mit Sicherheit als oberste Priorität gebaut.
  • Es bietet ein REST-API und ein LXC-Befehlszeilen-Tool, um mit Containern zu interagieren.
  • Es unterstützt eine Vielzahl von Speicher -Backends, Speichermengen und Speicherpools.
  • Das Netzwerkmanagement erfolgt durch die Erstellung von Brückennetzwerken und Cross-Host-Tunneln.
  • Erweiterte Kontrolle der Ressourcen wie CPU, RAM, Festplattennutzung, Block I/O und Kernel -Ressourcen.
  • Flexibel und skalierbar - Sie können Container auf Ihrem PC bereitstellen und einen Cluster konfigurieren, der Tausende von Containern auf verschiedenen Knoten aggregieren kann.

Was ist LXC?

Nicht verwechselt mit dem LXC Befehlszeilen-Client-Tool zur Verfügung gestellt von LXD, LXC (Linux -Container) ist eine beliebte Virtualisierungstechnologie auf OS-Ebene, die eine leistungsstarke API und andere Tools verwendet, mit denen Benutzer Container und virtuelle Maschinen in einem einzigen Host nahtlos erstellen und verwalten können. Es umfasst Vorlagen, Tools Sprache und Bibliotheksbindungen.

LXC -Funktionen

LXC Nutzt die folgenden Kernelfunktionen, um Prozesse zu verarbeiten:

  • Kernel -Namespaces: PID, Mount, UTS -Netzwerk und Benutzer.
  • CGroups (Kontrollgruppen).
  • Chroots - mit pivot_root mit.
  • SECComp -Richtlinien.
  • Selinux- und Apparmorprofile.

Linuxcontainer.Org ist das Regenschirmprojekt hinter beiden LXD Und LXC. Ziel ist es, eine Distribose- und Lieferantenneutralplattform für Linux-Containertechnologien anzubieten.

Mit dieser Einführung werden wir nun demonstrieren, wie man erstellt und verwaltet LXC Container auf rhelbasierten Linux-Verteilungen wie z Centos, Rocky Linux, Und Almalinux.

Anforderungen

Ein funktionierendes Linux -Betriebssystem mit minimaler Installation:

  • Installation von Rhel Linux
  • Installation von CentOS Linux
  • Installation von Rocky Linux
  • Installation von Almalinux

Schritt 1: Selinux in den zulässigen Modus einstellen

Wir werden mit dem Konfigurieren beginnen Selinux und es zulässt. Aber bevor wir dies tun, aktualisieren wir die Systempakete wie folgt:

$ sudo dnf update 

Zu setzen Selinux Führen Sie den Befehl aus: Führen Sie den Befehl aus:

$ sudo sed -i 's/^selinux =.*/Selinux = befreit/g '/etc/selinux/config 

Damit dies wirksam wird, starten Sie Ihren Server neu.

$ sudo Neustart 

Und bestätigen Sie den Status von Selinux.

$ Getenforce 
Überprüfen Sie den Selinux -Modus

Schritt 2: Installieren Sie das Epel -Repository

Epel ist ein Repository aus dem Fedora -Projekt Das liefert eine Reihe hochwertiger Pakete für Redhat Enterprise Linux und andere rhelbasierte Verteilungen.

$ sudo yum install https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-8.Keinarch.U / min oder $ sudo yum install epel-release 
Installieren Sie das Epel -Repository

Schritt 3: Fügen Sie die Kernelparameter hinzu

Bevor wir installieren LXD, Einige zusätzliche Parameter sind erforderlich. Wechseln Sie daher zum Root -Benutzer:

$ su - 

Und fügen Sie die Parameter wie folgt hinzu.

$ grubby -args = "user_namespace.enable = 1 "-update-kernel =" $ (grubby-Default-Kernel) "$ grubby-args =" Namespace.univr_enable = 1 "-update-kernel =" $ (grubby-Default-Kernel) "$ echo" Benutzer.max_user_namespaces = 3883 "| sudo tee -a /etc /sysctl.D/99-Userns.Conf 
Fügen Sie Linux -Kernel -Parameter hinzu

Sobald die Parameter vorhanden sind, fahren Sie fort und aktivieren Sie SNAP.

Schritt 4: Installieren und aktivieren Sie SNAP

Die einfachste Art zu installieren LXD An Rhel 8 ist es als installieren als Schnappnahme Paket. Aber zuerst, lassen Sie uns installieren Schnappnahme folgendermaßen.

$ sudo dnf installieren snapd 

Dies wird installieren Snapd Daemon oder Service neben anderen Python -Abhängigkeiten wie gezeigt.

Installieren Sie Snap in Linux

Fahren Sie mit installiertem SNAP fort und aktivieren Sie die Haupt Schnappnahme Kommunikationsbuchse.

$ sudo systemctl aktivieren -jetzt snapd.Steckdose 

Aktivieren Sie außerdem die klassische Unterstützung, indem Sie einen Symlink aus erstellen /var/lib/snapd/snap Zu /Snap.

$ sudo ln -s/var/lib/snapd/snap/snap 

So aktualisieren Sie die Schnappnahme Pfade, starten Sie Ihr System neu.

$ sudo Neustart 

Schritt 5: Installieren Sie den LXD -Container -Manager

Es gibt zwei Möglichkeiten der Installation LXD von einem Schnappnahme. Sie können die neueste Version von installieren LXD wie gezeigt.

$ sudo snap install -klassisches LXD 
Installieren Sie LXD unter Linux

Alternativ können Sie den neuesten Stall installieren Lts Version wie folgt:

$ sudo snap install lxd -channel = 4.0/stabil 

Ausführen können LXC Befehle ohne wechseln zum sudo user, fügen Sie den aktuell angemeldeten Benutzer zu der hinzu LXD Gruppe.

$ sudo usermod -Ag lxd $ user 

Stellen Sie sicher, dass der Benutzer zum hinzugefügt wurde LXD Gruppe durch Auflisten aller Gruppen, zu denen der Benutzer gehört.

$ gruppen tecmint 
Listen Sie Gruppen unter Linux auf

Als nächstes führen Sie die aus Newgrp Befehl wie folgt.

$ newgrp lxd 

Der Befehl ändert die aktuelle Gruppen -ID während einer Anmeldesitzung. Es legt die aktuelle Gruppen -ID auf die benannte Gruppe fest LXD.

Schritt 6: Initialisierung der LXD -Umgebung

Bevor wir anfangen zu erstellen und zu verwalten LXD Behälter müssen die initialisieren LXD Umgebung durch Ausführen des Befehls.

$ lxc init 

Was folgt, ist eine Reihe von Eingaben, mit denen Sie Ihre Umgebung einrichten können. Die Standardeinstellungen funktionieren gut, aber Sie können Ihre eigenen Vorlieben angeben.

Wir haben einen Aufbewahrungspool namens erstellt TEC-Pool mit dem LVM Option als Backend.

Initialisierung der LXD -Umgebung

Um die zu überprüfen LXD Umgebung, die Sie gerade konfiguriert haben, gibt es eine Reihe von Befehlen, die Sie verwenden können. Zum Beispiel, um das Standard -LXD -Profil auszuführen: Ausführende LXD -Profil:

$ lxc Profil anzeigen Standardeinstellung 
Listen Sie LXD -Profile auf

Um die Netzwerkadapter und die anzuzeigen IPv4 Und IPv6 Adressen, rennen:

$ LXC -Netzwerkliste 
Listen Sie LXD -Netzwerkadapter auf

Sie können es weiter einschränken und feinere Informationen über die anzeigen LXDBR0 Schnittstelle wie folgt.

$ lxc network show lxdbr0 
Listen Sie LXD -Netzwerkinformationen auf

Sie können auch den Speicherpool überprüfen.

$ LXC Speicherliste 
Listen Sie den LXD -Speicherpool auf

Sie können ferner komplizierte Details zum Speicherpool erhalten.

$ lxc speicher show tec-pool 
Listen Sie LXD -Speicherpool -Informationen auf

Laufen auflisten LXC Container, den Befehl ausführen:

$ lxcliste 

Im Moment haben wir noch keine laufenden Container. Sie erhalten also eine leere Tabelle nur mit den Spaltenbezeichnungen.

Listen Sie LXC aus, die Container ausführen

Schritt 7: Auflistung vorgebauter LXC -Containerbilder

So wie Docker, Die LXC Die Plattform bietet ein Repository von vorgefertigten Bildern, aus denen Sie Container erstellen können. Führen Sie den Befehl aus:

$ lxc Bildliste Bilder: 

Dies bevölkert eine große Liste von Containerbildern und virtuellen Maschinen für alle Betriebssysteme. Verwenden Sie die Syntax, um sich auf eine bestimmte Linux -Verteilung einzugrenzen:

$ lxc Bildliste Bilder: Grep -i OS -Type 

Zum Beispiel, um nach verfügbaren Bildern zu suchen Rocky Linux, Führen Sie den Befehl aus:

$ lxc Bildliste Bilder: grep -i rocky 
Listen Sie LXC -Containerbilder auf

Wenn Sie suchen Debian Bilder, führen Sie den Befehl aus:

$ lxc bildlistbilder: grep -i debian 
Listen Sie LXC Debian Image auf

Schritt 8: Starten von LXC -Containern

Starten LXC Behälter verwenden Sie die Syntax:

$ lxc starten Bilder: Distro/Version/Arch Container-name-hier 

Hier starten wir 2 Container: tec-container1 aus Debian 10 Und tec-container2 aus Rocky Linux 8.

$ lxc starten Bilder: debian/10/amd64 tec-container1 $ lxc starten bilder: rockylinux/8/amd64 tec-container2 
Starten Sie LXC -Container

Um die aufzulisten LXC Container führen Sie den Befehl aus:

$ lxcliste 

Die Ausgabe zeigt eine Vielzahl von Informationen über die Container an. Dies schließt den Namen der Container, den Status - ob ausgeführt oder gestoppt - IPv4- und IPv6.

Listen Sie LXC -Container auf

Um nur Container aufzulisten, führen Sie den Befehl aus:

$ LXC LISTE | Grep -I ich renne 

Ebenso für gestoppte Container führen Sie aus:

$ LXC LISTE | Grep -ich blieb stehen 
LISTE DURCH LXC -Container auflisten

Sie können die Informationen und Metriken eines Containers wie ausgeführte Prozesse, die CPU- und Speicherauslastung und die Bandbreite untersuchen, um einige mit dem Befehl zu erwähnen:

$ lxc Info tec-container1 
Listen Sie LXC -Containerinformationen auf

Schritt 9: Zugriff auf einen LXC -Container erhalten

Mit der Syntax können Sie einen Bash -Zugriff auf einen Container erhalten:

$ lxc Exec-Container-Namensname der Schale 

Zu Zugang zu Shell zu erhalten tec-container1, Wir werden den Befehl ausführen:

$ lxc Exec TEC-Container1 Bash 

Sobald Sie Shell Access gewonnen haben, können Sie mit dem Container als Root -Benutzer mit dem Container interagieren, indem Sie gemeinsame Shell -Befehle ausführen, einschließlich der Aktualisierung des Systems wie gezeigt:

$ APT Update 
Gain LXC Container Shell Access

Um aus dem Container zu beenden, führen Sie den Befehl aus:

$ Exit 

Alternativ können Sie die Befehle direkt im Container ausführen, ohne die Shell mit dem folgenden Format zugreifen zu können:

$ lxc exec Container-name Befehl 

Sie können beispielsweise die folgenden Befehle ausführen, mit denen die Paketlisten aktualisiert werden, die Version des Betriebssystems auf dem Debian -Container aktivieren und das Datum überprüfen.

$ lxc Exec TEC-Container1 APT Update $ lxc Exec TEC-Container1 CAT /etc /debian_version $ lxc execte tec-container1 Datum 
Führen Sie Befehle in LXC -Container aus

Schritt 10: Ziehen / drücken Sie eine Datei (n) in einen LXC -Container

Eine weitere Operation, die Sie durchführen können, besteht darin, Dateien auf und vom Container zu übertragen. Um dies zu demonstrieren, werden wir ein neues Verzeichnis in der erstellen LXD Container und navigieren Sie hinein.

# MKDIR -Daten && CD -Daten 

Als nächstes erstellen wir eine Beispieldatei und fügen einige Daten hinzu. Dazu erstellen wir eine Beispieldatei mit Vim Editor

# vim Datei1.txt 

Als nächstes geben wir einen Beispieltext ein und speichern die Datei.

Hallo Welt, Willkommen bei LXD -Containern. 

Um die Datei aus dem Container zum lokalen Hostsystem zu ziehen, werden wir die Syntax verwenden:

$ lxc Datei Pull Container-name/path/to/file /path/to/local/dest 

In diesem Fall wird der Befehl sein:

$ LXC-Datei Pull tec-container2/root/data/file1.txt /home /tecmint 
Ziehen Sie Dateien an den LXC -Container

Um eine Datei aus dem lokalen Verzeichnis in den Container zu drücken oder zu kopieren, verwenden Sie die Syntax:

$ LXC-Datei drücken /path/to/file container-nane/path/to/dest/dir/ 

In diesem Fall haben wir eine Beispieldatei im Home -Verzeichnis namens Datei2.txt kopiert an die /root/data/ Weg in der tec-container2 Container.

$ LXC -Datei Push/Home/Tecmint/Datei2.txt tec-container2/root/data/ 

Um die Existenz der Datei im Container zu bestätigen, werden wir ausführen:

$ lxc Exec TEC-Container2 LS /Root /Daten 
Drücken Sie Dateien in den LXC -Container

Schritt 11: Stop / Start / Neustart und löschen Sie LXC -Container

Mit dem LXC Befehlszeilen-Dienstprogramm Sie können Containerverwaltungsaufgaben wie Stoppen, Starten, Neustarten und Löschen von Containern ausführen.

Um ein zu stoppen LXC Container verwenden Sie die Syntax:

$ lxc Stop Container-Namen 

Zum Beispiel zum Stoppen tec-container1, Wir werden den Befehl ausführen:

$ lxc stop tec-container1 
Stoppen Sie den LXC -Container

Um die zu starten LXC Container verwenden Sie die Syntax:

$ lxc starten container name 

Zum Beispiel zum Starten tec-container1, Wir werden ausführen:

$ lxc starten tec-container1 
Starten Sie den LXC -Container

Beide neu zu starten LXC Container, wir werden den Befehl ausführen:

$ lxc restart tec-container1 $ lxc restart tec-container2 neu starten 
Starten Sie LXC -Behälter neu

Zu löschen und LXC Behälter müssen Sie zuerst den Behälter stoppen und danach löschen. Zum Löschen werden wir beispielsweise die Befehle ausführen:

$ lxc stop tec-container1 $ lxc löschen tec-container1 

Alternativ können Sie diese beiden Befehle wie gezeigt kombinieren.

$ lxc stop tec-container1 && lxc löschen tec-container1 löschen 
Löschen Sie LXC -Behälter

Schritt 12: Hilfe bei den Befehlszeilenoptionen LXC erhalten

Um Hilfe bei anderen Befehlsoptionen zu erhalten, die von bereitgestellt wurden, LXC, Führen Sie einfach den Befehl aus:

$ LXC -HELP- oder $ LXC -Befehl -HELP E.G $ LXC -Datei -HELP 
LXC -Containerhilfe
Abschluss

Das war ein tiefer Tauchgang in LXD Container und wie Sie sie mit dem erstellen und verwalten können LXC Befehlszeilen-Dienstprogramm-Tool. Wir vertrauen darauf, dass Sie diesen Leitfaden hilfreich gefunden haben.