Ricerca nel sito web

Come installare, creare e gestire LXC in Ubuntu/Debian


Nell'ultimo decennio, la comunità open source ha assistito a un costante passaggio alla containerizzazione come modalità preferita di distribuzione delle applicazioni grazie ai numerosi vantaggi che offre come portabilità, flessibilità, maggiore sicurezza e gestione più semplice delle applicazioni. Le tecnologie di containerizzazione più diffuse includono Docker, Podman e LXD.

Scritto in linguaggio Go, LXD (pronunciato come Lekseed) è descritto come il contenitore di sistema e gestore di macchine virtuali di nuova generazione che ti consente di gestire i tuoi contenitori e macchine virtuali dalla riga di comando o sfruttando un API REST o altri strumenti di terze parti. LXD è un progetto open source ed è un'estensione di LXC (Linux Containers) che è la tecnologia di virtualizzazione a livello di sistema operativo.

LXC è entrato in scena intorno al 2008 e LXD è stato lanciato 7 anni dopo, nel 2015, con gli stessi elementi costitutivi di LXC. LXD è venuto per rendere i contenitori più intuitivi e facili da gestire.

Essendo un'estensione di LXC, LXD fornisce funzionalità avanzate come istantanee e migrazione in tempo reale. Fornisce inoltre un demone che consente di gestire facilmente contenitori e macchine virtuali. Non è destinato a soppiantare LXC, ma mira piuttosto a migliorare l'usabilità e la gestione dei contenitori basati su LXC

In questa guida, dimostreremo come creare e gestire contenitori LXC utilizzando LXD su Debian/Ubuntu.

Passaggio 1: installa LXD su Ubuntu

Il primo passo è installare LXD. Ci sono due modi per farlo, puoi installare dal repository di Ubuntu usando il gestore pacchetti APT oppure puoi usare snap.

Utilizzando APT, aggiorna prima il sistema:

sudo apt update

Quindi installare l'hypervisor del contenitore di sistema LXD come segue.

sudo apt install lxd

Utilizzando snap, puoi installare l'ultima versione di LXD.

sudo snap install lxd

Inoltre, puoi installare l'ultima versione LTS che è LXD 4.0 come segue:

sudo snap install lxd --channel=4.0/stable

Puoi verificare la versione di LXD installata come mostrato:

lxd --version

Se utilizzavi snap, puoi verificare che il pacchetto snap LXD sia stato installato come mostrato:

snap list

Passaggio 2: inizializzazione del servizio LXD

Per inizializzare o avviare l'hypervisor del contenitore LXD, esegui il comando:

sudo lxd init

Il comando ti presenta una serie di domande su come configurare LXD. Le impostazioni predefinite funzionano bene, tuttavia, sei libero di specificare le tue impostazioni secondo le tue esigenze.

In questo esempio, abbiamo creato uno storage pool chiamato tecmint_pool con il file system ZFS e il gestore dei volumi. Per il resto delle domande, abbiamo scelto di utilizzare le opzioni predefinite. Un modo semplice per accettare la selezione predefinita è premere il pulsante INVIO sulla tastiera.

Conferma le informazioni fornite eseguendo il comando:

sudo lxc profile show default

È possibile restringere ulteriormente il campo allo storage pool creato. I comandi seguenti visualizzano i dettagli degli storage pool correnti.

sudo lxc storage list
sudo lxc storage show tecmint_pool

Puoi anche visualizzare informazioni sull'interfaccia di rete utilizzata da LXD, in questo caso lxdbr0, che è la selezione predefinita.

sudo lxc network show lxdbr0

Passaggio 3: creazione di contenitori LXD in Ubuntu

Ora cambiamo marcia e creiamo contenitori Linux. Puoi elencare tutti i contenitori predefiniti disponibili per il download utilizzando il comando:

sudo lxc image list images:

Questo popola un enorme elenco di tutti i contenitori in vari sistemi operativi come Ubuntu, CentOS, Debian e AlmaLinux, per citarne alcuni.

Puoi restringere il campo a una distribuzione specifica come segue:

sudo lxc image list images: | grep -i centos
sudo lxc image list images: | grep -i debian

In questo esempio, elenchiamo i contenitori disponibili.

sudo lxc image list images: | grep -i ubuntu

Ora creeremo il nostro primo contenitore. La sintassi per creare un contenitore è la seguente:

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

Ora creeremo due contenitori rispettivamente da Ubuntu 20 e Debian 10:

sudo lxc launch images:ubuntu/focal tecmint-con1
sudo lxc launch images:debian/10 tecmint-con2

Negli esempi precedenti, abbiamo creato due contenitori: tecmint-con1 e tecmint-con2.

Per elencare i contenitori creati, esegui il comando:

sudo lxc list

Dall'output, possiamo vedere elencati i nostri due contenitori.

Per ottenere l'accesso tramite shell a un contenitore LXC esegui il comando:

sudo lxc exec tecmint-con1 bash

Una volta ottenuto l'accesso alla shell, nota che il prompt cambia per indicare che stai eseguendo come utente root.

Per uscire dal contenitore, esegui il comando:

exit

Passaggio 4: gestione dei contenitori LXD in Ubuntu

Ora diamo un'occhiata ad alcuni dei comandi che puoi utilizzare per gestire i contenitori LXD.

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

sudo lxc list

Per visualizzare informazioni dettagliate su un contenitore LXC, utilizza la sintassi:

sudo lxc info container-name

Ciò ti fornirà informazioni come nome del contenitore, architettura, data di creazione, stato delle interfacce di rete, larghezza di banda, CPU, memoria e utilizzo del disco per citare alcuni parametri.

Per arrestare un contenitore LXC, utilizza la sintassi:

sudo lxc stop container-name

Ad esempio, per arrestare il contenitore tecmint-con1, esegui il comando:

sudo lxc stop  tecmint-con1

Ancora una volta, elenca i contenitori per confermare che il contenitore è stato fermato.

sudo lxc list

In alternativa, puoi elencare i contenitori in esecuzione o arrestati come segue:

sudo lxc list | grep -i STOPPED
sudo lxc list | grep -i RUNNING

Per avviare un contenitore LXC, utilizza la sintassi:

sudo lxc start container-name

Ad esempio, per avviare il contenitore tecmint-con1 esegui il comando:

sudo lxc start tecmint-con1

Puoi avviare o arrestare i contenitori ignorandoli in un comando separato da uno spazio utilizzando la seguente sintassi:

sudo lxc stop container1 container2
sudo lxc start container1 container2

Ad esempio, per arrestare tutti i contenitori, eseguire:

sudo lxc stop tecmint-con1 tecmint-con2

Per riavviare un contenitore LXC, utilizza la sintassi:

sudo lxc restart container-name

Ad esempio, per riavviare il contenitore tecmint-con1 esegui il comando:

sudo lxc restart tecmint-con1

In alternativa, puoi passare più contenitori in un singolo comando:

sudo lxc start container1 container2

Ad esempio, per riavviare tutti i contenitori, eseguire:

sudo lxc restart tecmint-con1 tecmint-con2

Per eliminare un contenitore LXC, innanzitutto arrestalo, quindi eliminalo. Ad esempio, per eliminare il contenitore tecmint-con2, esegui il comando:

sudo lxc stop tecmint-con2
sudo lxc delete tecmint-con2

Questa guida ti ha fornito solide basi sui contenitori LXD e su come avviare, creare e gestire i contenitori. La nostra speranza è che ora tu possa lanciare e gestire comodamente i tuoi contenitori senza troppe difficoltà.