GNU/Linux >> Linux Esercitazione >  >> Cent OS

Installa LXC (Linux Containers) in RHEL, Rocky e AlmaLinux

LXD è descritto come il gestore di container e macchine virtuali di nuova generazione che offre un'esperienza immersiva per i sistemi Linux in esecuzione all'interno di container o come macchine virtuali.

Fornisce immagini per un numero spropositato di distribuzioni Linux con supporto per un'ampia selezione di backend di archiviazione e tipi di rete. Fornisce inoltre la possibilità di installare le immagini su un singolo PC/laptop e persino su un'istanza cloud.

LXD ti consente di gestire container e VM in tre modi. Puoi sfruttare il client lxc o uno strumento da riga di comando, un'API REST o persino integrazioni di terze parti.

Caratteristiche LXD

Notevole LXD le caratteristiche includono:

  • LXD è basato su immagini con immagini per un'ampia selezione di distribuzioni Linux.
  • È costruito con la sicurezza come una priorità assoluta.
  • Fornisce un'API REST e uno strumento da riga di comando lxc per interagire con i container.
  • Fornisce supporto per un'ampia gamma di backend di archiviazione, volumi di archiviazione e pool di archiviazione.
  • La gestione della rete avviene attraverso la creazione di reti bridge e tunnel cross-host.
  • Controllo avanzato di risorse come CPU, RAM, utilizzo del disco, I/O a blocchi e risorse del kernel.
  • Flessibile e scalabile:puoi distribuire container sul tuo PC e configurare un cluster in grado di aggregare migliaia di container su vari nodi.

Cos'è LXC?

Da non confondere con lxc strumento client da riga di comando fornito da LXD , LXC (Contenitore Linux ) è una popolare tecnologia di virtualizzazione a livello di sistema operativo che utilizza una potente API e altri strumenti per consentire agli utenti di creare e gestire senza problemi contenitori e macchine virtuali in un unico host. Comprende modelli, linguaggio degli strumenti e associazioni di librerie.

Caratteristiche LXC

LXC sfrutta le seguenti funzionalità del kernel per gestire i processi:

  • Spazi dei nomi del kernel:pid, mount, uts network e user.
  • CGroups (gruppi di controllo).
  • Croots – Utilizzo di pivot_root.
  • Norme Seccomp.
  • Profili SELinux e Apparmor.

Linuxcontainers.org è il progetto ombrello dietro entrambi LXD e LXC . Il suo obiettivo è offrire una piattaforma indipendente dalla distribuzione e dal fornitore per le tecnologie dei container Linux.

Con questa introduzione fuori mano, ora dimostreremo come creare e gestire LXC container su distribuzioni Linux basate su RHEL come CentOS , Linux roccioso, e AlmaLinux .

Requisiti

Un sistema operativo Linux funzionante con installazione minima:

  • Installazione di RHEL Linux
  • Installazione di CentOS Linux
  • Installazione di Rocky Linux
  • Installazione di AlmaLinux

Passaggio 1:imposta SELinux in modalità permissiva

Iniziamo subito configurando SELinux e impostandolo su permissivo. Ma prima di farlo, aggiorniamo i pacchetti di sistema come segue:

$ sudo dnf update

Per impostare SELinux per consentire, eseguire il comando:

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

Affinché ciò abbia effetto, riavvia il server.

$ sudo reboot

E conferma lo stato di SELinux .

$ getenforce

Fase 2:installa il repository EPEL

EPEL è un repository del Progetto Fedora che fornisce una serie di pacchetti di alta qualità per RedHat Enterprise Linux e altre distribuzioni basate su RHEL.

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

Passaggio 3:aggiungi i parametri del kernel

Prima di installare LXD , sono necessari alcuni parametri aggiuntivi. Passa quindi all'utente root:

$ su -

E aggiungi i parametri come segue.

$ 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

Una volta impostati i parametri, procedi e abilita Snap.

Fase 4:installa e abilita Snap

Il modo più semplice per installare LXD su RHEL 8 è installarlo come uno scatto pacchetto. Ma prima installiamo snap come segue.

$ sudo dnf install snapd

Questo installerà snapd demone o servizio insieme ad altre dipendenze Python come mostrato.

Con lo snap installato, procedi e abilita lo snap principale presa di comunicazione.

$ sudo systemctl enable --now snapd.socket

Inoltre, abilita il supporto classico creando un collegamento simbolico da /var/lib/snapd/snap a /scatta .

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

Per aggiornare lo snap percorsi, riavvia il sistema.

$ sudo reboot

Passaggio 5:installa LXD Containerization Manager

Esistono due modi per installare LXD da uno scatto . Puoi installare l'ultima versione di LXD come mostrato.

$ sudo snap install —-classic lxd

In alternativa, puoi installare l'ultimo LTS stabile versione come segue:

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

Per essere in grado di eseguire lxc comandi senza passare a sudo user, aggiungi l'utente attualmente connesso a lxd gruppo.

$ sudo usermod -aG lxd $USER

Verifica che l'utente sia stato aggiunto a lxd gruppo elencando tutti i gruppi a cui appartiene l'utente.

$ groups tecmint

Quindi, esegui newgrp comando come segue.

$ newgrp lxd

Il comando modifica l'ID del gruppo corrente durante una sessione di accesso. Imposta l'ID del gruppo corrente sul gruppo denominato che è lxd .

Passaggio 6:inizializzazione dell'ambiente LXD

Prima di iniziare a creare e gestire LXD container, dobbiamo inizializzare LXD ambiente eseguendo il comando.

$ lxc init

Quello che segue è una serie di prompt che ti permetteranno di configurare il tuo ambiente. Le impostazioni predefinite funzioneranno perfettamente, ma sentiti libero di specificare le tue preferenze.

Abbiamo creato uno storage pool chiamato tec-pool con il lvm opzione come backend.

Per verificare la LXD ambiente che hai appena configurato, ci sono una serie di comandi che puoi usare. Ad esempio, per visualizzare il profilo LXD predefinito eseguire:

$ lxc profile show default

Per visualizzare le schede di rete e l'IPv4 e IPv6 indirizzi, eseguire:

$ lxc network list

Puoi restringerlo ulteriormente e visualizzare informazioni più dettagliate su lxdbr0 interfaccia come segue.

$ lxc network show lxdbr0

Puoi anche verificare lo storage pool.

$ lxc storage list

Puoi ottenere ulteriori dettagli complessi sullo storage pool.

$ lxc storage show tec-pool

Per elencare lxc in esecuzione contenitori, eseguire il comando:

$ lxc list

Al momento, non abbiamo ancora alcun container in esecuzione. Quindi otterrai una tabella vuota con solo le etichette delle colonne.

Passaggio 7:elenco delle immagini container LXC predefinite

Proprio come Docker , il LXC la piattaforma fornisce un repository di immagini predefinite da cui è possibile creare contenitori. Per elencare tutte le immagini predefinite per tutti i sistemi operativi, comprese le macchine virtuali, eseguire il comando:

$ lxc image list images: 

In questo modo viene compilato un enorme elenco di immagini contenitore e macchine virtuali per tutti i sistemi operativi. Per restringere il campo a una specifica distribuzione Linux, usa la sintassi:

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

Ad esempio, per cercare le immagini disponibili per Rocky Linux , esegui il comando:

$ lxc image list images: grep -i rocky

Se stai cercando Debian immagini, esegui il comando:

$ lxc image list images: grep -i debian

Fase 8:lancio dei container LXC

Per avviare lxc contenitori, utilizzare la sintassi:

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

Qui lanceremo 2 container:tec-container1 da Debian 10 e tec-container2 da Rocky Linux 8 .

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

Per elencare il lxc contenitori, eseguire il comando:

$ lxc list

L'output visualizza una serie di informazioni sui contenitori. Ciò include il nome dei contenitori, lo stato, in esecuzione o arrestato, gli indirizzi IPv4 e IPv6, il tipo (contenitore o macchina virtuale) e un numero di snapshot.

Per elencare solo i contenitori in esecuzione, esegui il comando:

$ lxc list | grep -i running

Allo stesso modo, per i contenitori fermi, eseguire:

$ lxc list | grep -i stopped

Puoi sondare le informazioni e le metriche di un container come processi in esecuzione, utilizzo di CPU e memoria e larghezza di banda per citarne alcuni usando il comando:

$ lxc info tec-container1 

Fase 9:ottieni l'accesso Shell a un container LXC

Puoi ottenere l'accesso bash a un contenitore usando la sintassi:

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

Per ottenere l'accesso shell a tec-container1 , eseguiremo il comando:

$ lxc exec tec-container1 bash

Una volta ottenuto l'accesso alla shell, puoi iniziare a interagire con il container come utente root eseguendo i comandi della shell comuni, incluso l'aggiornamento del sistema come mostrato:

$ apt update

Per uscire dal contenitore, esegui il comando:

$ exit

In alternativa, puoi eseguire i comandi direttamente sul contenitore senza accedere alla shell utilizzando il seguente formato:

$ lxc exec container-name command

Ad esempio, puoi eseguire i seguenti comandi che aggiorneranno gli elenchi dei pacchetti, controllano la versione del sistema operativo in esecuzione sul contenitore Debian e controllano la data.

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

Fase 10:estrai/spingi uno o più file in un contenitore LXC

Un'altra operazione che puoi eseguire è trasferire file da e verso il contenitore. Per dimostrarlo, creeremo una nuova directory in LXD contenitore e naviga al suo interno.

# mkdir data && cd data

Successivamente, creeremo un file di esempio e aggiungeremo alcuni dati. Per farlo creeremo un file di esempio con vim editore

# vim file1.txt

Successivamente, digiteremo del testo di esempio e salveremo il file.

Hello World, Welcome to LXD containers.

Per eseguire il pull del file dal contenitore al sistema host locale, utilizzeremo la sintassi:

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

In questo caso, il comando sarà:

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

Per eseguire il push o copiare un file dalla directory locale al contenitore, utilizzare la sintassi:

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

In questo caso, abbiamo un file di esempio nella home directory chiamato file2.txt copiato in /root/data/ percorso nel tec-container2 contenitore.

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

Per confermare l'esistenza del file nel contenitore, eseguiremo:

$ lxc exec tec-container2 ls /root/data

Fase 11:Arresta/Avvia/Riavvia ed elimina i contenitori LXC

Con lxc utilità della riga di comando puoi eseguire attività di gestione dei contenitori come l'arresto, l'avvio, il riavvio e l'eliminazione dei contenitori.

Per fermare un lxc contenitore, usa la sintassi:

$ lxc stop container-name

Ad esempio, per interrompere tec-container1 , eseguiremo il comando:

$ lxc stop tec-container1

Per avviare lxc contenitore, usa la sintassi:

$ lxc start container-name

Ad esempio, per avviare tec-container1 , eseguiremo:

$ lxc start tec-container1

Per riavviare entrambi lxc contenitori, eseguiremo il comando:

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

Per eliminare un lxc container, devi prima fermare il container e poi cancellarlo. Ad esempio, per eliminare, eseguiremo i comandi:

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

In alternativa, puoi combinare questi due comandi come mostrato.

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

Passaggio 12:ottieni assistenza sulle opzioni della riga di comando di LXC

Per ottenere assistenza su altre opzioni di comando fornite da LXC , esegui semplicemente il comando:

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

È stato un tuffo in profondità in LXD contenitori e come crearli e gestirli utilizzando lxc strumento di utilità della riga di comando. Confidiamo che tu abbia trovato utile questa guida.


Cent OS
  1. Come installare MediaWiki su RHEL 8/Rocky Linux 8/AlmaLinux OS 8

  2. Come installare la GUI di GNOME su Rocky Linux 8 / CentOS 8 / RHEL 8

  3. Come installare PostgreSQL su CentOS 8 / Rocky Linux 8 / RHEL 8

  4. Come installare Java su Rocky Linux 8 / CentOS 8 / RHEL 8

  5. Come installare VirtualBox su Rocky Linux 8 / CentOS 8 / RHEL 8

Come installare Jenkins su AlmaLinux 8 o Rocky Linux

Come eseguire contenitori LXC/LXD su AlmaLinux o Rocky Linux 8

Installa Discord su AlmaLinux o Rocky Linux 8

Come installare ClamAV su Rocky Linux 8 | Alma Linux

Come installare Podman su Rocky Linux 8 / AlmaLinux per eseguire Containers

Installa Centreon Monitoring su AlmaLinux 8 | Linux roccioso 8