Ricerca nel sito web

Come installare Docker su Debian 11


Su questa pagina

  1. Prerequisiti
  2. Installa dipendenze
  3. Aggiunta del repository Docker
  4. Installazione di Docker su Debian 11
  5. Consenti all'utente non root di accedere a Docker
  6. Utilizzo di base di Docker
  7. Conclusione

Docker è un insieme di piattaforme aperte che fornisce la virtualizzazione a livello di sistema operativo per lo sviluppo, la distribuzione e l'esecuzione di applicazioni. In Docker, le applicazioni vengono distribuite come pacchetti unità standardizzate chiamate contenitori. Ogni contenitore è isolato l'uno dall'altro, incluse librerie e file di configurazione, ma ciascuno di essi può comunicare attraverso canali di rete ben definiti.

Per ora, Docker è diventato uno standard per lo sviluppo software e DevOps. Viene utilizzato da milioni di sviluppatori per creare, condividere ed eseguire qualsiasi applicazione ogni giorno al lavoro. Viene utilizzato nel ciclo di vita dello sviluppo dell'applicazione, dallo sviluppo stesso, al test e alla produzione. Con Docker, l'applicazione diventa più flessibile e portabile. Le applicazioni possono essere eseguite ovunque in diversi sistemi operativi con un modo semplice, ma l'applicazione stessa rimane la stessa dalle librerie ai file di configurazione.

In questo tutorial imparerai come installare Docker su Debian 11 Bullseye. Inoltre, imparerai l'utilizzo di base di Docker per l'esecuzione di container e la gestione delle immagini.

Prerequisiti

  • Un server Debian 11. Assicurarsi che tutti i pacchetti siano aggiornati all'ultima versione.
  • Un utente root o un utente con privilegi root. Questo utente verrà utilizzato per l'installazione di nuovi pacchetti e la modifica delle configurazioni di sistema.

Installa dipendenze

Innanzitutto, installerai alcune dipendenze dei pacchetti di base sul tuo sistema Debian.

1. Eseguire il comando apt di seguito per installare nuove dipendenze dei pacchetti.

apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Digita y e premi Invio per installare tutti questi pacchetti.

Aggiunta del repository Docker

Per questa guida, installerai Docker dal repository Docker ufficiale. Quindi aggiungerai un nuovo repository Docker al tuo sistema Debian.

1. Eseguire il seguente comando per aggiungere la chiave GPG per Docker.

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2. Successivamente, aggiungi il repository Docker per il sistema Debian 11 utilizzando il comando seguente.

echo \
 "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. Ora eseguire il comando apt update per aggiornare/aggiornare tutti i repository disponibili.

apt update

Ora sei pronto per installare Docker su Debian 11 Bullseye.

Installazione di Docker su Debian 11

1. Se il tuo sistema ha già installato Docker dal repository Debian, devi rimuoverlo usando il comando seguente.

sudo apt remove docker docker-engine docker.io containerd runc

2. Successivamente, puoi installare nuovamente Docker utilizzando il comando apt di seguito.

apt install docker-ce docker-ce-cli containerd.io

Digitare y e premere Invio per confermare l'installazione.

3. Se l'installazione è completa, eseguire il seguente comando per verificare l'installazione.

Controlla se il servizio è abilitato o meno.

systemctl is-enabled docker
systemctl is-enabled containerd

Controlla lo stato del servizio Docker e Containerd.

systemctl status docker containerd

Di seguito è riportato l'output simile che otterrai.

Come visto, i servizi Docker e Containerd sono attivi (in esecuzione) ed entrambi i servizi sono abilitati e verranno eseguiti automaticamente all'avvio del sistema.

Consenti all'utente non root di accedere a Docker

Per impostazione predefinita, Docker consente solo all'utente root di eseguire i contenitori. E affinché un utente non root sia in grado di eseguire i contenitori, è necessario aggiungere l'utente non root alla finestra mobile del gruppo, che viene creata automaticamente durante l'installazione di Docker.

1. Per questo esempio, utilizzerai un utente johndoe per eseguire un contenitore Docker.

Crea il nuovo utente johndoe sul tuo sistema Debian usando il seguente comando.

useradd -m -s /bin/bash johndoe

2. Successivamente, eseguire il seguente comando per aggiungere l'utente johndoe alla finestra mobile del gruppo.

usermod -aG docker johndoe

3.  Ora accedi come utente johndoe utilizzando il comando seguente e verifica la configurazione.

su - johndoe

Eseguire il seguente comando docker per verificare l'installazione.

docker run hello-world

E vedrai il messaggio Hello Docker qui sotto.

Di seguito è riportata una semplice spiegazione del comando docker eseguito in alto.

  • La finestra mobile proverà a trovare il nome di un'immagine hello-world. Se l'immagine è disponibile localmente, il docker eseguirà il contenitore, se l'immagine non è disponibile localmente, il Docker troverà e scaricherà l'immagine hello-world sull'hub Docker (repository di immagini docker predefinito).
  • Se l'immagine della finestra mobile viene scaricata, la finestra mobile eseguirà il contenitore. E il contenitore esegue i comandi e ti mostra il messaggio Hello Docker.

4. Ora controlla il contenitore docker utilizzando il comando docker di seguito.

Verifica del contenitore con lo stato in esecuzione.

docker ps

Controllo di tutti i contenitori: visualizzerà tutti i contenitori, attualmente in esecuzione e arrestati.

docker ps -a

Di seguito è riportato un output simile al seguente.

Come puoi vedere, il nuovo nome del contenitore bold_bartix viene creato con l'immagine di base hello-world e lo stato corrente del contenitore è Exited o Stop. Il nome del contenitore bold_bartix nello screenshot viene scelto casualmente da Docker, ma puoi specificare il nome del tuo contenitore.

Utilizzo di base di Docker

In questa fase imparerai l'utilizzo di base di Docker per la gestione di immagini e contenitori.

1. Innanzitutto, scarica le immagini Docker sul tuo computer locale utilizzando il seguente comando.

docker pull nginx:alpine

Il comando scaricherà il nome dell'immagine Docker nginx e il tag alpine nel tuo sistema.

Il termine tag è come una versione dell'immagine stessa. nginx:alpine indica l'immagine nginx con tag alpine, che significa basata sul sistema operativo Alpine Linux. Controlla sempre tutti i tag disponibili delle immagini Docker nel repository Docker-Hub ufficiale.

Di seguito è riportato un esempio di tutti i tag disponibili per l'immagine Docker nginx.

Per controllare tutte le immagini docker disponibili sul tuo sistema locale, esegui il seguente comando docker.

docker images

Vedrai un output simile a quello di seguito.

Come visto, hai due immagini Docker, nginx:alpine e hello-world.

2. Successivamente, eseguire il seguente comando per eseguire un contenitore.

docker run -it --rm -d -p 8080:80 --name web nginx:alpine

Ora otterrai la stringa casuale e il numero del nuovo contenitore.

Opzioni che devi conoscere:

  • -i o --interactive - mantiene aperto il contenitore STDIN anche se non collegato.
  • -t o --tty - alloca uno pseudo-terminale che collega il tuo terminale con STDIN e STDOUT del contenitore.
  • --rm - rimuove automaticamente il contenitore quando il contenitore viene chiuso o arrestato.
  • -d - esegue il contenitore in background, scollega il contenitore dopo l'esecuzione.
  • -p 8080:80 - mappa la porta tra il contenitore e il sistema host. La porta 80 sul contenitore è mappata alla porta del sistema host 8080.
  • --name web - specifica il nuovo nome del contenitore come web.
  • nginx:alpine - l'immagine Docker che usiamo è nginx:alpine.

Ora controlla il contenitore in esecuzione utilizzando il comando seguente.

docker ps

Vedrai un risultato simile come di seguito.

Per verificare il tuo container Nginx, apri il tuo browser web e digita l'indirizzo IP del tuo server con la porta 8080.

http://192.168.1.10:8080/

E vedrai la pagina dell'indice Nginx dal web del contenitore come di seguito.

3. Successivamente, puoi controllare il registro del contenitore eseguendo il seguente comando docker.

docker logs web

E vedrai tutti i log del tuo container, dall'inizio alla fine.

Per limitare l'output del log, puoi utilizzare l'opzione --tail n come di seguito.

docker logs --tail 10 web

E vedrai le ultime 10 righe dei registri del contenitore.

4. Ora per arrestare il contenitore Docker, puoi utilizzare il comando Docker di seguito.

docker stop web

Successivamente, verifica il contenitore in esecuzione utilizzando il seguente comando.

docker ps
docker ps -a

Vedrai il seguente output come di seguito.

Il contenitore Web viene arrestato e viene eliminato automaticamente. È perché usi l'opzione --rm quando esegui il contenitore.

5. Successivamente, imparerai a eseguire il contenitore con il volume personalizzato. La directory sul computer host verrà utilizzata come volume per il contenitore Docker.

Crea la nuova directory dei dati e il file index.html personalizzato utilizzando il seguente comando.

mkdir -p ~/data/
nano ~/data/index.html

Copia e incolla lo script index.html personalizzato come di seguito.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Docker Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container</h2>
</body>
</html>

Salvare la configurazione premendo il pulsante Ctrl+x, digitare y, quindi premere Invio.

Successivamente, crea il nuovo contenitore utilizzando il comando docker di seguito.

docker run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine

Ora otterrai il numero casuale e la stringa del contenitore.

L'opzione -v ~/data:/usr/share/nginx/html monterà ~/data sulla macchina locale nel contenitore nella directory /usr/share/nginx/html.

Ora verifica il contenitore Docker utilizzando il seguente comando.

docker ps

E vedrai un output simile come di seguito.

Successivamente, apri nuovamente il browser Web e digita l'indirizzo IP del server seguito dalla porta 8080 come di seguito.

E otterrai il file index.html personalizzato che hai appena creato in cima, il che significa che la directory ~/data è montata nella directory del contenitore /usr/share/nginx/html.

6. Inoltre, è possibile accedere al Web del contenitore in esecuzione corrente eseguendo il comando docker di seguito.

Innanzitutto, controlla che il web del contenitore sia in esecuzione.

docker ps

Ora collegalo al web del contenitore utilizzando il comando seguente.

docker exec -it web /bin/sh

All'interno del contenitore, controlla il nome host del contenitore utilizzando il seguente comando.

hostname

Controlla l'indirizzo IP del contenitore utilizzando il comando ip di seguito.

ip a

Controlla la tabella di routing del contenitore usando il seguente comando.

route -n

Di seguito è riportato l'output simile che otterrai.

Per ripulire il tuo ambiente attuale, arresta il contenitore Web utilizzando il seguente comando.

docker stop web

Inoltre, puoi rimuovere tutti i contenitori con lo stato exited utilizzando il comando seguente.

docker rm $(docker ps --filter "status=exited" -q)

Conclusione

Congratulazioni! Hai installato correttamente Docker su Debian 11 Bullseye. Inoltre, hai appreso l'utilizzo di base di Docker per estrarre un'immagine da Docker-Hub, eseguire il contenitore docker, controllare lo stato del contenitore docker, i registri e l'utilizzo di base del volume Docker. Per il passaggio successivo, puoi provare a creare la tua immagine Docker personalizzata per la tua applicazione, inviarla al repository Docker Hub.