GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren Sie LXC (Linux-Container) in RHEL, Rocky und AlmaLinux

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

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

LXD ermöglicht es Ihnen, Container und VMs auf drei Arten zu verwalten. Sie können den lxc-Client nutzen oder Befehlszeilentool, eine REST-API oder sogar Integrationen von Drittanbietern.

LXD-Funktionen

Bemerkenswertes LXD Zu den Funktionen gehören:

  • LXD ist bildbasiert mit Bildern für eine große Auswahl an Linux-Distributionen.
  • Bei der Entwicklung hat Sicherheit höchste Priorität.
  • Es stellt eine REST-API und ein lxc-Befehlszeilentool bereit, um mit Containern zu interagieren.
  • Es bietet Unterstützung für eine Vielzahl von Speicher-Backends, Speichervolumes und Speicherpools.
  • Die Netzwerkverwaltung erfolgt durch die Erstellung von Bridge-Netzwerken und Host-übergreifenden Tunneln.
  • Erweiterte Steuerung von 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 zu verwechseln mit lxc Befehlszeilen-Client-Tool, bereitgestellt von LXD , LXC (Linux-Container ) ist eine beliebte Virtualisierungstechnologie auf Betriebssystemebene, die eine leistungsstarke API und andere Tools verwendet, um Benutzern das nahtlose Erstellen und Verwalten von Containern und virtuellen Maschinen auf einem einzigen Host zu ermöglichen. Es umfasst Vorlagen, Werkzeugsprache und Bibliotheksbindungen.

LXC-Funktionen

LXC nutzt die folgenden Kernel-Features, um Prozesse zu verarbeiten:

  • Kernel-Namespaces:pid, mount, uts network und user.
  • CGroups (Kontrollgruppen).
  • Chroots – Verwendung von pivot_root.
  • Seccomp-Richtlinien.
  • SELinux- und Apparmor-Profile.

Linuxcontainers.org ist das Dachprojekt hinter beiden LXD und LXC . Sein Ziel ist es, eine distro- und anbieterneutrale Plattform für Linux-Containertechnologien anzubieten.

Nach dieser Einführung zeigen wir Ihnen nun, wie Sie LXC erstellen und verwalten Container auf RHEL-basierten Linux-Distributionen wie 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:Setzen Sie SELinux in den zulassenden Modus

Gleich zu Beginn beginnen wir mit der Konfiguration von SELinux und auf permissiv setzen. Aber bevor wir das tun, aktualisieren wir die Systempakete wie folgt:

$ sudo dnf update

So stellen Sie SELinux ein Führen Sie den folgenden Befehl aus, um dies zuzulassen:

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

Damit dies wirksam wird, starten Sie Ihren Server neu.

$ sudo reboot

Und bestätigen Sie den Status von SELinux .

$ getenforce

Schritt 2:EPEL-Repository installieren

EPEL ist ein Repository des Fedora-Projekts das eine Reihe hochwertiger Pakete für RedHat Enterprise Linux bereitstellt und andere RHEL-basierte Distributionen.

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo yum install epel-release

Schritt 3:Fügen Sie die Kernel-Parameter hinzu

Bevor wir LXD installieren , sind einige zusätzliche Parameter 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.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)"
$ echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf

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

Schritt 4:Snap installieren und aktivieren

Die einfachste Art, LXD zu installieren auf RHEL 8 ist, es als Snap zu installieren Paket. Aber lassen Sie uns zuerst snap installieren wie folgt.

$ sudo dnf install snapd

Dadurch wird snapd installiert Daemon oder Dienst neben anderen Python-Abhängigkeiten wie gezeigt.

Wenn Snap installiert ist, fahren Sie fort und aktivieren Sie den Haupt-Snap Kommunikationssteckdose.

$ sudo systemctl enable --now snapd.socket

Aktivieren Sie außerdem die klassische Unterstützung, indem Sie einen symbolischen Link von /var/lib/snapd/snap erstellen zu /snap .

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

Um den Snap zu aktualisieren Pfade, starten Sie Ihr System neu.

$ sudo reboot

Schritt 5:LXD Containerization Manager installieren

Es gibt zwei Möglichkeiten, LXD zu installieren von einem Snap . Sie können die neueste Version von LXD installieren wie abgebildet.

$ sudo snap install —-classic lxd

Alternativ können Sie das neueste stabile LTS installieren Version wie folgt:

$ sudo snap install lxd --channel=4.0/stable

Um lxc ausführen zu können Befehle, ohne zum sudo-Benutzer zu wechseln, fügen Sie den aktuell angemeldeten Benutzer zum lxd hinzu Gruppe.

$ sudo usermod -aG lxd $USER

Vergewissern Sie sich, dass der Benutzer zum lxd hinzugefügt wurde Gruppe, indem alle Gruppen aufgelistet werden, denen der Benutzer angehört.

$ groups tecmint

Führen Sie als Nächstes newgrp aus Befehl wie folgt.

$ newgrp lxd

Der Befehl ändert die aktuelle Gruppen-ID während einer Anmeldesitzung. Es setzt die aktuelle Gruppen-ID auf die benannte Gruppe, die lxd ist .

Schritt 6:LXD-Umgebung initialisieren

Bevor wir mit der Erstellung und Verwaltung von LXD beginnen Container müssen wir das LXD initialisieren Umgebung, indem Sie den Befehl ausführen.

$ lxc init

Es folgt eine Reihe von Eingabeaufforderungen, mit denen Sie Ihre Umgebung einrichten können. Die Standardeinstellungen funktionieren einwandfrei, aber fühlen Sie sich frei, Ihre eigenen Einstellungen festzulegen.

Wir haben einen Speicherpool namens tec-pool erstellt mit dem lvm Option als Backend.

Zur Überprüfung des LXD Umgebung, die Sie gerade konfiguriert haben, gibt es eine Reihe von Befehlen, die Sie verwenden können. Um beispielsweise das standardmäßige LXD-Profil anzuzeigen, führen Sie Folgendes aus:

$ lxc profile show default

Zur Anzeige der Netzwerkadapter und der IPv4 und IPv6 Adressen, führen Sie aus:

$ lxc network list

Sie können es weiter eingrenzen und genauere Informationen über lxdbr0 anzeigen Schnittstelle wie folgt.

$ lxc network show lxdbr0

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

$ lxc storage list

Sie können außerdem komplizierte Details über den Speicherpool abrufen.

$ lxc storage show tec-pool

Zum Auflisten des laufenden lxc Container, führen Sie den folgenden Befehl aus:

$ lxc list

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

Schritt 7:Vorgefertigte LXC-Container-Images auflisten

Genau wie Docker , das LXC Plattform bietet ein Repository mit vorgefertigten Images, aus denen Sie Container erstellen können. Führen Sie den folgenden Befehl aus, um alle vorgefertigten Images für alle Betriebssysteme einschließlich virtueller Maschinen aufzulisten:

$ lxc image list images: 

Dadurch wird eine riesige Liste von Container-Images und virtuellen Maschinen für alle Betriebssysteme aufgefüllt. Um sich auf eine bestimmte Linux-Distribution einzugrenzen, verwenden Sie die Syntax:

$ lxc image list images: grep -i os-type

Zum Beispiel, um nach verfügbaren Images für Rocky Linux zu suchen , führen Sie den folgenden Befehl aus:

$ lxc image list images: grep -i rocky

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

$ lxc image list images: grep -i debian

Schritt 8:LXC-Container starten

So starten Sie lxc Container, verwenden Sie die Syntax:

$ lxc launch images:{distro}/{version}/{arch} {container-name-here}

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

$ lxc launch images:debian/10/amd64 tec-container1
$ lxc launch images:rockylinux/8/amd64 tec-container2 

Zum Auflisten der lxc Container, führen Sie den Befehl aus:

$ lxc list

Die Ausgabe zeigt eine Vielzahl von Informationen zu den Containern an. Dazu gehören der Name der Container, der Status – ob ausgeführt oder gestoppt – IPv4- und IPv6-Adressen, Typ (ob Container oder virtuelle Maschine) und eine Reihe von Snapshots.

Führen Sie den folgenden Befehl aus, um nur laufende Container aufzulisten:

$ lxc list | grep -i running

Führen Sie für angehaltene Container entsprechend Folgendes aus:

$ lxc list | grep -i stopped

Sie können die Informationen und Metriken eines Containers wie laufende Prozesse, CPU- und Speicherauslastung und Bandbreite, um nur einige zu nennen, mit dem folgenden Befehl prüfen:

$ lxc info tec-container1 

Schritt 9:Erhalten Sie Shell-Zugriff auf einen LXC-Container

Sie können Bash-Zugriff auf einen Container erhalten, indem Sie die folgende Syntax verwenden:

$ lxc exec container-name  name-of-the-shell

Um Shell-Zugriff auf tec-container1 zu erhalten , führen wir den Befehl aus:

$ lxc exec tec-container1 bash

Sobald Sie Shell-Zugriff erhalten haben, können Sie als Root-Benutzer mit der Interaktion mit dem Container beginnen, indem Sie allgemeine Shell-Befehle ausführen, einschließlich der Aktualisierung des Systems wie gezeigt:

$ apt update

Um den Container zu verlassen, führen Sie den folgenden Befehl aus:

$ exit

Alternativ können Sie die Befehle direkt auf dem Container ausführen, ohne auf die Shell zuzugreifen, indem Sie das folgende Format verwenden:

$ lxc exec container-name command

Beispielsweise können Sie die folgenden Befehle ausführen, die die Paketlisten aktualisieren, die Version des Betriebssystems überprüfen, die auf dem Debian-Container ausgeführt wird, und das Datum überprüfen.

$ lxc exec tec-container1 apt update
$ lxc exec tec-container1 cat /etc/debian_version
$ lxc exec tec-container1 date

Schritt 10:Datei(en) in einen LXC-Container ziehen/schieben

Eine weitere Operation, die Sie ausführen können, ist das Übertragen von Dateien in und aus dem Container. Um dies zu demonstrieren, erstellen wir ein neues Verzeichnis im LXD Container und navigieren Sie hinein.

# mkdir data && cd data

Als Nächstes erstellen wir eine Beispieldatei und fügen einige Daten hinzu. Dazu erstellen wir eine Beispieldatei mit vim Redakteur

# vim file1.txt

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

Hello World, Welcome to LXD containers.

Um die Datei aus dem Container auf das lokale Hostsystem zu ziehen, verwenden wir die Syntax:

$ lxc file pull {container-name}/{path/to/file} {/path/to/local/dest}

In diesem Fall lautet der Befehl:

$ lxc file pull tec-container2/root/data/file1.txt /home/tecmint

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

$ lxc file push {/path/to/file} {container-nane} /path/to/dest/dir/

In diesem Fall haben wir eine Beispieldatei namens file2.txt im Home-Verzeichnis nach /root/data/ kopiert werden Pfad im tec-container2 Behälter.

$ lxc file push /home/tecmint/file2.txt tec-container2/root/data/

Um das Vorhandensein der Datei im Container zu bestätigen, führen wir Folgendes aus:

$ lxc exec tec-container2 ls /root/data

Schritt 11:Stoppen / Starten / Neustarten und Löschen von LXC-Containern

Mit dem lxc Befehlszeilendienstprogramm können Sie Container-Verwaltungsaufgaben ausführen, wie z. B. das Stoppen, Starten, Neustarten und Löschen von Containern.

Zum Stoppen eines lxc Container, verwenden Sie die Syntax:

$ lxc stop container-name

Zum Beispiel, um tec-container1 zu stoppen , führen wir den Befehl aus:

$ lxc stop tec-container1

Zum Starten des lxc Container, verwenden Sie die Syntax:

$ lxc start container-name

Zum Beispiel, um tec-container1 zu starten , führen wir Folgendes aus:

$ lxc start tec-container1

Um beide lxc neu zu starten Container, führen wir den Befehl aus:

$ lxc restart tec-container1
$ lxc restart tec-container2

Zum Löschen eines lxc Container müssen Sie zuerst den Container stoppen und ihn danach löschen. Um beispielsweise zu löschen, führen wir die Befehle aus:

$ lxc stop tec-container1
$ lxc delete tec-container1

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

$ lxc stop tec-container1 && lxc delete tec-container1

Schritt 12:Hilfe zu LXC-Befehlszeilenoptionen erhalten

Um Hilfe zu anderen von LXC bereitgestellten Befehlsoptionen zu erhalten , führen Sie einfach den folgenden Befehl aus:

$ lxc --help
OR
$ lxc command --help e.g
$ lxc file --help
Schlussfolgerung

Das war ein tiefer Einblick in LXD Container und wie Sie sie mit lxc erstellen und verwalten können Befehlszeilendienstprogramm. Wir vertrauen darauf, dass Sie diesen Leitfaden hilfreich fanden.


Cent OS
  1. So installieren Sie MediaWiki auf RHEL 8/Rocky Linux 8/AlmaLinux OS 8

  2. So installieren Sie die GNOME-GUI unter Rocky Linux 8 / CentOS 8 / RHEL 8

  3. So installieren Sie PostgreSQL unter CentOS 8 / Rocky Linux 8 / RHEL 8

  4. So installieren Sie Java unter Rocky Linux 8 / CentOS 8 / RHEL 8

  5. So installieren Sie VirtualBox unter Rocky Linux 8 / CentOS 8 / RHEL 8

So installieren Sie Jenkins auf AlmaLinux 8 oder Rocky Linux

So führen Sie LXC/LXD-Container auf AlmaLinux oder Rocky Linux 8 aus

Installieren Sie Discord auf AlmaLinux oder Rocky Linux 8

So installieren Sie ClamAV unter Rocky Linux 8 | AlmaLinux

So installieren Sie Podman auf Rocky Linux 8 / AlmaLinux, um Container auszuführen

Installieren Sie Centreon Monitoring auf AlmaLinux 8 | Rocky-Linux 8