Docker è una popolare piattaforma open-source che permette a sviluppatori e amministratori di sistema di creare, eseguire e condividere applicazioni utilizzando i container. La containerizzazione, ovvero l’utilizzo di container per distribuire applicazioni, sta diventando sempre più diffusa grazie ai vantaggi offerti dai container in termini di flessibilità, leggerezza, portabilità, scalabilità e sicurezza.
Questo articolo fornisce un buon punto di partenza per i principianti che desiderano imparare a installare e utilizzare Docker su un sistema Linux Ubuntu 20.04, utilizzando alcuni comandi di base. Per questa guida, installeremo Docker Community Edition (CE).
Prerequisiti:
Installazione di Docker su Ubuntu 20.04
Per utilizzare l’ultima versione di Docker, la installeremo dal repository ufficiale di Docker. Iniziare aggiungendo la chiave GPG per il repository ufficiale di Docker al proprio sistema, quindi aggiungere la configurazione del repository al source APT utilizzando i seguenti comandi.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Aggiornare quindi la cache dei pacchetti APT per includere i nuovi pacchetti Docker nel sistema utilizzando il comando seguente.
$ sudo apt update
A questo punto, installare il pacchetto Docker come mostrato.
$ sudo apt install docker-ce

Durante il processo di installazione del pacchetto Docker, il programma di installazione del pacchetto avvia systemd (system and service manager) per avviare e abilitare automaticamente il servizio docker. Utilizzare i seguenti comandi per verificare che il servizio docker sia attivo e abilitato per l’avvio automatico all’avvio del sistema. Controllare anche il suo stato:
$ sudo systemctl is-active docker $ sudo systemctl is-enabled docker $ sudo systemctl status docker

Ci sono diversi altri comandi systemctl per gestire e controllare il servizio docker che include quanto segue:
$ sudo systemctl stop docker #stop the docker service $ sudo systemctl start docker #start the docker service $ sudo systemctl restart docker #restart the docker service
Per controllare la versione di Docker CE installata sul tuo sistema, esegui il seguente comando:
$ docker version

Puoi visualizzare i comandi di utilizzo di docker disponibili eseguendo il comando docker senza opzioni o argomenti:
$ docker

Gestisci Docker come utente non root con il comando sudo
Per impostazione predefinita, il demone Docker si collega a un socket UNIX (anziché a una porta TCP) di proprietà dell’utente root. Pertanto, il demone Docker viene sempre eseguito come utente root e per eseguire il comando docker è necessario utilizzare sudo.
Inoltre, durante l’installazione del pacchetto Docker, viene creato un gruppo chiamato docker
. Quando il demone Docker si avvia, crea un socket UNIX accessibile dai membri del gruppo docker (che concede privilegi equivalenti all’utente root).
Per eseguire il comando docker senza sudo, aggiungi tutti gli utenti non root che devono accedere a docker, nel gruppo docker come segue. In questo esempio, il comando aggiunge l’utente attualmente connesso ($USER)
o il nome utente al gruppo docker:
$ sudo usermod -aG docker $USER OR $ sudo usermod -aG docker username
Per attivare le modifiche ai gruppi, esegui il seguente comando:
$ newgrp docker $ groups

Verifica se puoi eseguire i comandi docker senza sudo. Il seguente comando scarica un’immagine di prova e la esegue in un contenitore. Una volta avviato il contenitore, stampa un messaggio informativo ed esce. Questo è anche un altro modo per verificare se l’installazione funziona correttamente.
$ docker run hello-world

Lavorare con le immagini Docker
A Docker image is a read-only template file with instructions for creating a Docker container. You can either create your custom images or you can only use those created by others and published in the Docker Hub, the world’s largest library and community for container images.
Puoi cercare un’immagine centos
nel Docker Hub con il seguente comando:
$ docker search centos

Per scaricare un’immagine localmente, utilizza il comando pull. Questo esempio mostra come scaricare l’immagine ufficiale centos.
$ docker pull centos

Una volta completato il download, puoi elencare le immagini disponibili nel sistema locale.
$ docker images

Se non hai più bisogno di un’immagine, puoi rimuoverla dal tuo sistema.
$ docker rmi centos OR $ docker rmi centos:latest #where latest is the tag
Esecuzione e Gestione dei Contenitori Docker
A Docker container is a process that runs natively on Linux and shares the kernel of the host machine with other containers. Concerning a Docker image, a container is just a running image.
Per avviare un contenitore basato sulla tua nuova immagine centos
, esegui il seguente comando dove “centos”
è il nome dell’immagine locale e “cat /etc/centos-release” è il comando da eseguire nel contenitore:
$ docker run centos cat /etc/centos-release

A container runs a discrete process that is isolated in that it has its own: file system, networking, and isolated process tree separate from the host. Note that you can manipulate a container using the container’s ID, ID-prefix, or name as shown below. The above container process exits after the command runs.
Per elencare i contenitori Docker, utilizza il comando docker ps come segue. Usa il flag -l
per mostrare il contenitore creato più di recente in tutti gli stati:
$ docker ps OR $ docker ps -l

Per mostrare tutti i contenitori, compresi quelli che sono usciti, utilizza il flag -a
.
$ docker ps -a

Puoi anche avviare un contenitore utilizzando il suo ID del contenitore dopo che è uscito. Ad esempio, nel comando precedente, il nostro ID del contenitore è 94c35e616b91. Possiamo avviare il contenitore come mostrato (nota che eseguirà il comando ed uscirà):
$ docker start 94c35e616b91

Per fermare un container in esecuzione utilizzando il suo ID, utilizzare il comando stop come mostrato.
$ docker stop 94c35e616b91
Docker consente anche di assegnare un nome a un container utilizzando l’opzione --name
durante l’avvio.
$ docker run --name my_test centos cat /etc/centos-release $ docker ps -l

Ora è possibile utilizzare il nome del container per gestire (avviare, fermare, visualizzare statistiche, rimuovere, ecc.) il container:
$ docker stop my_test $ docker start my_test $ docker stats my_test $ docker rm my_test
Eseguire una sessione interattiva all’interno di un container Docker
Per avviare una sessione shell interattiva in un container per consentire l’esecuzione di comandi all’interno del container, eseguire il seguente comando:
$ docker run --name my_test -it centos

Nel comando precedente, gli switch -it
indicano a Docker di allocare una pseudo-TTY collegata allo stdin del container, creando così una shell bash interattiva nel container.
È possibile uscire emettendo il comando di uscita come mostrato.
# exit
Se si preferisce non uscire, è possibile staccarsi da un container e lasciarlo in esecuzione. Per fare ciò, utilizzare la sequenza di tasti CTRL+p
e poi CTRL+q
.

È possibile ricollegarsi al container utilizzando il comando attach che attaccherà gli stream di input, output ed errori standard locali al container in esecuzione:
$ docker attach my_test
Inoltre, è possibile avviare un container in modalità distaccata utilizzando l’opzione -d
. Quindi utilizzare il comando attach per attaccare gli stream di input, output ed errori standard del proprio terminale al container in esecuzione:
$ docker run --name my_test -d -it centos $ docker attach my_test

Infine, è possibile fermare un container in esecuzione dalla sessione host eseguendo il
$ docker kill my_test
Questo è tutto! In questa guida, abbiamo coperto come installare e utilizzare Docker CE in Ubuntu 20.04 Linux. Se hai domande, utilizza il modulo di feedback qui sotto per chiederci.