Ricerca nel sito web

Come installare Containerd Container Runtime su Ubuntu 22.04


Su questa pagina

  1. Prerequisiti
  2. Installazione manuale di Containerd
  3. Installazione di Containerd tramite APT Docker Repository
  4. Comunicazione con Containerd tramite nerdctl
  5. Conclusione

Containerd è un runtime di container di alto livello che supporta OCI Image Spec e OCI Runtime Spec (Open Container Initiative). Containerd è stato creato ponendo l'accento sulla semplicità, robustezza e portabilità per l'implementazione e il ciclo di vita dei container. È progettato per essere facilmente integrabile in sistemi di grandi dimensioni come Docker e Kubernetes. Sotto il cofano, la nuova versione di Docker utilizza Containerd per la gestione del ciclo di vita dei container. E per Kubernetes, puoi utilizzare Containerd come runtime del container tramite CRI per gestire il ciclo di vita dei container nel cluster Kubernetes.

Questo tutorial spiegherà come installare Containerd Container Runtime su un server Ubuntu 22.04. Questo tutorial esaminerà due diversi metodi per l'installazione di Containerd, manualmente scaricando il pacchetto binario o installando Containerd tramite il repository APT. Alla fine di questo tutorial, avrai l'ambiente container per il tuo sviluppo, che puoi utilizzare anche come parte dell'installazione del cluster Kubernetes.

Prerequisiti

Per seguire questo tutorial, avrai bisogno dei seguenti requisiti:

  • Un server Ubuntu 22.04 - Questo esempio utilizzerà il server con il nome host \server-ubuntu\.
  • Un utente non root con privilegi amministrativi root/sudo.

Installazione manuale di Containerd

Nella prima fase imparerai a installare Containerd Container Runtime manualmente tramite un pacchetto binario. Ciò significa che dovrai anche installare alcuni componenti per Containerd stesso, incluso il plug-in runc e CNI (Container Network Interface).

Sia Containerd che tutti i suoi componenti sono disponibili sul suo repository GitHub e pronti per l'installazione.

Per installare Containerd, controlla la pagina di rilascio di Containerd GitHub per ottenere l'ultima versione. Quindi, copia il link e scarica il pacchetto binario di Containerd usando \wget\. Successivamente, estrai il file nella directory \/usr/local\.

Al momento della stesura di questo articolo, l'ultima versione di Containerd è la v1.6.8. Scaricalo usando il comando \wget\ sul tuo server Ubuntu ed estrailo nella directory \/usr/local\ tramite \tar comando \.

wget https://github.com/containerd/containerd/releases/download/v1.6.8/containerd-1.6.8-linux-amd64.tar.gz
tar Cxzvf /usr/local containerd-1.6.8-linux-amd64.tar.gz

Runc è uno strumento della riga di comando che viene utilizzato per generare contenitori su sistemi Linux secondo la specifica OCI (Open Container Initiative). Per installare runc, dovrai visitare la pagina di rilascio ufficiale di runc GitHub e prendere l'ultima versione di runc e scaricarla usando il comando wget.

Al momento della stesura di questo articolo, l'ultima versione di runc è la v1.1.3. Scaricalo usando il comando wget e installalo come di seguito.

wget https://github.com/opencontainers/runc/releases/download/v1.1.3/runc.amd64
sudo install -m 755 runc.amd64 /usr/local/sbin/runc

Ora controlla il file binario runc usando il comando seguente. Dovresti vedere che il file binario runc è disponibile nella directory \/usr/local/sbin\.

which runc

Ora dovrai installare il plug-in CNI (Container Network Interface) per Containerd Container Runtime. Il plug-in CNI fornisce una funzionalità di rete per i contenitori sul sistema Linux.

Prima di scaricare il plug-in CNI, assicurati di visitare la pagina di rilascio ufficiale di GitHub per ottenere l'ultima versione del plug-in CNI.

Al momento della stesura di questo documento, l'ultima versione del plug-in CNI è la v1.1.1. Scaricalo usando il comando wget come di seguito.

wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz

Successivamente, crea una nuova directory \/opt/cni/bin\ che verrà utilizzata come directory di installazione di destinazione del plug-in CNI. Quindi, estrai il plug-in CNI al suo interno tramite il comando tar.

mkdir -p /opt/cni/bin
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz

Dopo aver installato tutti e tre i componenti Containerd Container Runtime, inizierai a configurare Containerd.

Eseguire il seguente comando per creare una nuova directory \/etc/containerd\. Quindi, genera la configurazione predefinita di Containerd utilizzando il comando \containerd\ come di seguito.

sudo mkdir -p /etc/containerd/
containerd config default | sudo tee /etc/containerd/config.toml

Eseguire ora il comando seguente per abilitare \SystemdCgroup\ per il runtime del contenitore Containerd. Questo comando sostituirà l'opzione \SystemdCgroup=false\ con \SystemdCgroup=true\ nel file di configurazione di Containerd \/etc/containerd/ config.toml.

sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml

Ora esegui il seguente comando per scaricare il file del servizio systemd per Containerd nella directory \/etc/systemd/system\.

sudo curl -L https://raw.githubusercontent.com/containerd/containerd/main/containerd.service -o /etc/systemd/system/containerd.service

Quindi, ricarica il gestore systemd per applicare un nuovo file di servizio.

sudo systemctl daemon-reload

Infine, avvia e abilita il servizio \container\ utilizzando il seguente comando systemctl. Se l'installazione ha esito positivo, vedrai che non è stato trovato alcun messaggio di errore durante l'avvio del processo da parte del servizio \container\.

sudo systemctl start containerd
sudo systemctl enable containerd

Controlla e verifica il servizio containerd\ utilizzando il comando seguente. Dovresti vedere che il servizio containerd\ è attualmente nello stato di \in esecuzione\ ed è abilitato\, il che significa che verrà eseguito automaticamente all'avvio del sistema.

sudo systemctl status containerd

Installazione di Containerd tramite APT Docker Repository

Ora imparerai come installare Containerd Container Runtime tramite il repository APT Docker.

Innanzitutto, esegui il seguente comando per installare alcune dipendenze del pacchetto. Quando viene richiesto di confermare l'installazione, immettere Y e premere INVIO.

sudo apt install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Successivamente, esegui il seguente comando per creare una nuova directory e scaricare la chiave GPG per il repository Docker.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Aggiungi il repository Docker al tuo sistema usando il comando seguente.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ora esegui il seguente comando apt per aggiornare e aggiornare l'indice del pacchetto per il tuo sistema Ubuntu. Quindi, installa il pacchetto \containerd.io\ come Containerd Container Runtime. L'installazione inizierà automaticamente.

sudo apt update
sudo apt install containerd.io

Al termine dell'installazione, avviare e abilitare il servizio \container\ utilizzando il seguente comando systemctl.

sudo systemctl start containerd
sudo systemctl enable containerd

Quindi, controlla e verifica il servizio \container\ utilizzando il seguente comando. Dovresti vedere che il servizio \container\ è attivo e in esecuzione.

sudo systemctl status containerd

Successivamente, genererai un nuovo file di configurazione per Containerd Container Runtime.

Eseguire il seguente comando per eseguire il backend della configurazione predefinita fornita dal repository Docker. Quindi, genera un nuovo file di configurazione utilizzando il comando \container\ come di seguito.

sudo mv etc/containerd/config.toml etc/containerd/config.toml.orig
containerd config default | sudo tee /etc/containerd/config.toml

Ora esegui il comando seguente per abilitare \SystemdCgroup\ per Containerd.

sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml

Successivamente, dovrai anche installare il plug-in CNI (Container Network Interface) per l'installazione di Containerd tramite il repository APT Docker.

Esegui il comando wget qui sotto per scaricare il plugin CNI.

wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz

Ora crea una nuova directory \/opt/cni/bin\ usando il comando seguente. Quindi, estrai il plug-in CNI tramite il comando tar come di seguito.

mkdir -p /opt/cni/bin
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz

Infine, esegui il comando seguente per riavviare il servizio Containerd e applicare le nuove modifiche.

sudo systemctl restart containerd

A questo punto, il runtime del contenitore Containerd è ora in esecuzione con il plug-in CNI e SystemdCgroup.

Comunicare con Containerd tramite nerdctl

ContainERD CTL è uno strumento da riga di comando per la gestione dei contenitori per il runtime del contenitore Containerd. È compatibile con Docker CLI per Docker e ha la stessa UI/UX del comando \docker\.

La riga di comando nrdctl supporta anche Docker Compose tramite il comando \nerdctl compose\, supporta anche la modalità container rootless, immagini pigre tramite OverlayBD e Stargz, supporta immagini crittografate e distribuzione di immagini P2P tramite IPFS.

Esegui il seguente comando per scaricare il file binario \nerctl\. Quindi, estrailo tramite il comando tar nella directory \/usr/local/bin\.

wget https://github.com/containerd/nerdctl/releases/download/v0.22.2/nerdctl-0.22.2-linux-amd64.tar.gz
sudo tar Cxzvf /usr/local/bin nerdctl-0.22.2-linux-amd64.tar.gz

Ora controlla il file binario nerdctl usando il seguente comando.

which nerdctl

Successivamente, imparerai come eseguire un container con Containerd container runtime tramite il comando \nerdctl\. Lo strumento da riga di comando \nerdctl\ è compatibile con Docker, quindi il comando per la gestione dei contenitori è simile al comando Docker.

Esegui il nuovo contenitore con il nome \nginx\ utilizzando il comando \nerdctl\ di seguito. Il contenitore \nginx\ verrà eseguito sulla porta 80 sia per il contenitore che per l'host ed è basato sull'immagine \nginx:alpine\.

sudo nerdctl run -d --name nginx -p 80:80 nginx:alpine

Ora controlla il contenitore attualmente in esecuzione sul tuo sistema usando il seguente comando \nerdctl\. E dovresti vedere il contenitore \nginx\ in esecuzione.

sudo nerdctl ps

Successivamente, controlla e verifica l'elenco delle immagini del contenitore disponibili sul tuo sistema utilizzando il comando seguente. Dovresti vedere l'immagine \nginx:alpine\ scaricata.

sudo nerdctl images

Infine, esegui il comando curl di seguito per controllare il contenitore \nginx\. E dovresti vedere la pagina index.html predefinita del contenitore \nginx\.

curl localhost

Inoltre, puoi anche controllare e verificare i log del contenitore \nginx\ utilizzando il seguente comando \nerdctl\.

sudo nerdctl logs nginx

Conclusione

Durante questo tutorial, hai appreso due metodi per installare il runtime del contenitore Containerd. Hai imparato come installare Containerd manualmente scaricando il pacchetto binario Container e installando Containerd tramite il repository APT Docker.

Alla fine, ora hai imparato come installare lo strumento da riga di comando nerdctl e l'utilizzo di base di nerdctl per la gestione dei contenitori in esecuzione nell'ambiente di runtime del contenitore Containerd. Ora puoi anche configurare il cluster Kubernetes utilizzando il runtime del contenitore Containerd.