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à.