Questo tutorial continua la serie di articoli relativi a Docker e copre i comandi Docker più utilizzati. Iniziamo una breve panoramica di Docker, quindi passiamo all'installazione di Docker sul tuo server. Successivamente, ti guideremo attraverso tutti i comandi necessari per la gestione di contenitori, immagini e volumi Docker. Diventa un utente professionista di Docker seguendo questa guida in 10 minuti.
Cos'è Docker
 
 Docker è una piattaforma aperta per lo sviluppo, la spedizione e l'esecuzione di applicazioni. È lo standard de facto per il confezionamento e la condivisione di app, dal desktop al cloud.
Per raggiungere il suo obiettivo, Docker utilizza i container.
Il contenitore ha le seguenti caratteristiche:
- Un container è un pacchetto per il software e tutte le librerie richieste.
- Non appena viene avviato, un container determina un ambiente di runtime per la tua applicazione.
- Un container è più leggero di una macchina virtuale, quindi può essere avviato molto più velocemente.
- Un contenitore è distribuito sotto forma di immagine, che consiste in più livelli. Più contenitori possono riutilizzare questi livelli.
Le funzionalità di cui sopra ti consentono di:
- Crea ambienti isolati per la distribuzione.
- Avvia le tue applicazioni in pochi minuti.
Docker ti aiuta a semplificare e automatizzare ogni fase del processo di sviluppo del software.
Ecco le funzionalità essenziali di Docker:
- Docker ha una community gigantesca.
- Docker è un modo semplice e leggero per distribuire software.
- Docker ha un enorme repository pubblico di container per tutti i possibili scopi.
- Docker riduce i costi di sviluppo e operazioni.
- La configurazione di Docker è semplice e veloce.
- Docker fornisce l'isolamento dell'applicazione.
- L'immagine Docker ha livelli, che hanno il controllo della versione.
- Docker automatizza ogni fase della gestione dei container.
Puoi installare Docker su sistemi operativi Linux, macOS e Windows.
Installa Docker
Questa sezione descrive come installare il pacchetto Docker CE (community edition) sul sistema operativo Linux.
Se stai utilizzando il cloud AWS, ti suggerisco un articolo sull'installazione automatica di Docker nell'istanza EC2 utilizzando CloudFormation.
Installa Docker su Ubuntu/Debian
 
 Per impostazione predefinita, il repository predefinito di Ubuntu o Debian non contiene l'ultima versione del pacchetto Docker CE. Quindi dovrai aggiungere il repository ufficiale Docker CE al tuo sistema.
Prima di aggiungere il repository, installa alcune dipendenze richieste eseguendo il comando seguente:
apt-get install apt-transport-https ca-certificates curl software-properties-common curl -yDopo aver installato tutte le dipendenze, importa la chiave Docker GPG utilizzando il comando seguente;
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -Quindi, aggiungi il repository ufficiale Docker CE al file sorgente APT con il seguente comando:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"Una volta aggiunto il repository, sarà necessario aggiornare la cache del repository. Puoi aggiornarlo con il seguente comando:
apt-get update -yUna volta che il tuo repository è aggiornato, esegui il comando seguente per installare l'ultima versione di Docker CE sul tuo sistema.
apt-get install docker-ce -yIl comando precedente installerà il pacchetto Docker CE nel tuo sistema e avvierà il servizio automaticamente.
Puoi verificare la versione installata di Docker CE eseguendo il comando seguente:
docker --versionDovresti vedere la versione Docker nel seguente output:
Docker version 19.03.13, build 4484c46d9dSe desideri rimuovere il pacchetto Docker dal tuo sistema, esegui il comando seguente:
apt-get remove docker-ceInstalla Docker su CentOS/RHEL
 
 Per il sistema operativo CentOS o RHEL, dovrai installare il repository Docker CE nel tuo sistema. Puoi utilizzare il comando DNF per aggiungere e abilitare il repository Docker CE come mostrato di seguito:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repoUna volta aggiunto il repository Docker CE, puoi elencare tutte le versioni disponibili di Docker CE eseguendo il comando seguente:
dnf list docker-ce --showduplicates | sort -rDovresti ottenere l'elenco completo nel seguente output:
docker-ce.x86_64                3:19.03.13-3.el8                docker-ce-stable
Docker CE Stable - x86_64                        54 kB/s | 3.8 kB     00:00
CentOS-8 - Extras                                14 kB/s | 8.1 kB     00:00
CentOS-8 - Base                                 4.6 MB/s | 2.2 MB     00:00
CentOS-8 - AppStream                            4.7 MB/s | 5.8 MB     00:01
Available Packages
Quindi, installa l'ultima versione di Docker CE eseguendo il comando seguente:
dnf install docker-ce --nobestUna volta installato Docker, verifica la versione installata con il seguente comando:
docker --versionDovresti ottenere il seguente output:
Docker version 19.03.13, build 4484c46d9dPer avviare il servizio Docker, esegui il comando seguente:
systemctl start dockerPer interrompere il servizio Docker, esegui il comando seguente:
systemctl stop dockerPuoi anche eseguire il comando seguente per visualizzare ulteriori informazioni su Docker:
docker infoDovresti vedere il seguente output:
 
 Se desideri rimuovere il pacchetto Docker dal tuo sistema, esegui il comando seguente:
dnf remove docker-ceGestione dei container con Docker
 Il docker container comando viene utilizzato per gestire il ciclo di vita del contenitore. Se non hai l'immagine da cui eseguire il container, Docker andrà al registro, scaricalo.
Esegui Docker Container
Utilizza la seguente sintassi per scaricare l'immagine dal registro Docker e creare un contenitore.
docker container run [your-image-name]Ad esempio, esegui il comando seguente per creare un contenitore di server Web Apache:
docker container run httpdDovresti ottenere il seguente output:
 
 
 Puoi utilizzare l'opzione --rm con Docker esegui il comando per rimuovere un contenitore dopo l'uscita.
docker container run --rm httpdConnetti alla shell del contenitore Docker
 Puoi utilizzare l'opzione -it con Docker esegui il comando per creare e avviare il container Apache e collegarlo alla shell bash interattiva.
docker container run -it httpd /bin/bashDovresti ottenere il seguente output:
 
 Avvia Docker Container in background
Ora puoi eseguire qualsiasi comando all'interno del contenitore.
 Puoi utilizzare l'opzione -td con il comando Docker run per creare e avviare il container Apache e mantenerlo in esecuzione.
docker container run -td httpdDovresti ottenere il seguente output:
 
 Imposta il nome del contenitore Docker
 Puoi utilizzare l'opzione --name con Docker esegui il comando per assegnare un nome contenitore utilizzando la seguente sintassi:
docker container run --name [container-name] -td [image-name]
 Ad esempio, crea un nuovo contenitore dall'immagine Apache e assegna un nome apacheweb con il seguente comando:
docker container run --name apacheweb -td httpdBind Docker Container sulla porta specifica
Se desideri accedere al processo del contenitore della macchina esterna, puoi esporre una porta del contenitore alla rete esterna.
 In questo caso, puoi utilizzare l'opzione -p con il comando Docker per esporre la porta specifica come mostrato di seguito:
docker container run -p [host-port]:[container-port] --name [container-name] -dit [image-name]Ad esempio, crea un contenitore del server web Apache ed esponi la porta del contenitore 80 alla porta 8080 con il seguente comando:
docker container run -p 8080:80 --name apacheweb -dt httpdOra puoi accedere al server Web Apache in esecuzione all'interno del contenitore utilizzando l'URL http://localhost:8080 .
Elenca tutti i contenitori Docker
Per elencare tutti i container in esecuzione e interrotti nel tuo sistema, esegui il comando seguente:
docker ps -aDovresti vedere tutti i contenitori nel seguente output:
 
 Per elencare solo i container in esecuzione nel tuo sistema, esegui il comando seguente:
docker psPuoi anche elencare il contenitore con il seguente comando:
docker container ls 
 Visualizza le statistiche del contenitore Docker
 Per visualizzare le statistiche in tempo reale del container in esecuzione (utilizzo della CPU e della memoria, I/O della rete e del disco) denominato apacheweb , esegui il comando seguente:
docker stats apachewebDovresti vedere il seguente output:
 
 Visualizza tutti i processi del contenitore Docker
Per elencare tutti i processi in esecuzione all'interno del contenitore in esecuzione denominato apacheweb , esegui il comando seguente:
docker top apachewebDovresti vedere il seguente output:
 
 Visualizza i registri del contenitore Docker
Per visualizzare i log del contenitore in esecuzione denominato apacheweb , esegui il comando seguente:
docker logs apachewebDovresti vedere il seguente output:
 
 Avvia, arresta e metti in pausa il contenitore Docker
Per interrompere il contenitore in esecuzione denominato apacheweb , esegui il comando seguente:
docker container stop apachewebPer avviare il contenitore denominato apacheweb , esegui il comando seguente:
docker container start apachewebPer mettere in pausa il contenitore denominato apacheweb , esegui il comando seguente:
docker container pause apachewebRiavvia o elimina il container Docker
Per riavviare il contenitore in esecuzione denominato apacheweb , esegui il comando seguente:
docker container restart apachewebPer terminare il contenitore in esecuzione denominato apacheweb , esegui il comando seguente:
docker container kill apachewebCollega a container Docker già in esecuzione
Per connetterti al container in esecuzione, esegui il comando seguente:
docker container exec -it apacheweb /bin/bash 
 Per eseguire qualsiasi comando all'interno del contenitore in esecuzione, esegui il comando seguente:
docker container exec -it apacheweb ls 
 Gestione delle immagini Docker
In questa sezione, ti mostreremo alcuni comandi più comunemente usati per gestire l'immagine Docker.
Scarica immagine Docker dal registro
Per scaricare o estrarre l'immagine dal registro Docker, utilizza la seguente sintassi:
docker pull [image-name]Ad esempio, puoi estrarre l'immagine del server Web Nginx dal registro Docker con il seguente comando:
docker pull nginxDovresti ottenere il seguente output:
 
 Carica immagine Docker nel registro
Se desideri caricare un'immagine esistente nel registro Docker, utilizza la seguente sintassi:
docker push [image-name]Accedi a Docker Il registro
Innanzitutto, dovrai accedere al registro Docker con il seguente comando:
docker loginUna volta effettuato l'accesso, esegui il comando seguente per ottenere l'ID dell'immagine Nginx e tagga l'immagine con il seguente comando:
docker imagesUscita:
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        3 weeks ago         133MB
httpd               latest              3dd970e6b110        3 weeks ago         138MBAggiungi tag all'immagine Docker
Quindi, tagga l'immagine con il seguente comando:
docker tag f35646e83998 amaksimov/nginxDove:
- f35646e83998è l'ID immagine, amaksimov è il nome del registro Docker e nginx è il nome dell'immagine.
Quindi, esegui il push dell'immagine Nginx nel registro Docker con il seguente comando:
docker push amaksimov/nginxDovresti vedere il seguente output:
 
 Crea immagine Docker dal contenitore in esecuzione
Puoi anche creare un'immagine da un contenitore esistente utilizzando la seguente sintassi:
docker commit [container-name] [new-image-name]Ad esempio, crea un'immagine dal container Apache, esegui il comando seguente:
docker commit apacheweb apache-imagePer salvare la tua immagine esistente nell'archivio tar eseguendo il comando seguente:
docker save apache-image > apache-image.tar 
 Cronologia dell'immagine Docker
Puoi stampare la cronologia di qualsiasi immagine Docker con il seguente comando:
docker history apache-imageDovresti ottenere il seguente output:
 
 Elimina immagine Docker
Puoi rimuovere qualsiasi immagine Docker utilizzando la seguente sintassi:
docker rmi [image-name]
 Ad esempio, se vuoi rimuovere l'immagine di Apache, dovrai fermare il contenitore che sta usando httpd immagine:
docker container stop apacheweb
docker rm apacheweb
 Innanzitutto, dobbiamo eliminare apache-image immagine:
docker rmi apache-image
 Solo in seguito, rimuoviamo httpd immagine con il seguente comando:
docker rmi httpdNel tempo, le immagini e i contenitori creati manualmente possono creare confusione sul tuo server. Dai un'occhiata alle nostre Domande frequenti su Docker per scoprire come ripulire tutto.
Gestione dei volumi Docker
Quando crei un nuovo contenitore, memorizzi alcuni dati ed elimini il contenitore, i dati andranno persi. In questo caso, puoi creare un volume sul sistema host e avviare un container utilizzando questo volume. Dopo aver eliminato il contenitore, è possibile recuperare i dati dal volume. Puoi anche utilizzare il volume Docker per condividere i dati tra più contenitori.
 In questa sezione, useremo più comunemente docker volume comandi con esempi.
Crea volume Docker
 Per creare un nuovo volume denominato datavolume con il seguente comando:
docker volume create datavolumeElenca tutti i volumi Docker
Per elencare il volume creato, esegui il seguente comando:
docker volume lsDovresti vedere il seguente output:
 
 Informazioni sul volume della finestra mobile di stampa
Per stampare ulteriori informazioni sul volume, eseguire il comando seguente:
docker inspect datavolumeDovresti vedere il seguente output:
 
 Monta volume al contenitore Docker
Per creare un nuovo container chiamato apacheweb e montare il datavolume sul sistema host nella directory /mnt nel container, eseguire il comando seguente:
docker run -it --name apacheweb1  --mount source=datavolume,destination=/mnt -td httpdVolume Docker remoto
Per rimuovere il volume, esegui il seguente comando:
docker volume rm datavolumeDomande frequenti su Docker
Come eliminare le immagini Docker inutilizzate
Per eliminare tutte le immagini della finestra mobile non utilizzate, è necessario eseguire il comando seguente:
docker rmi $(docker images -a -q)Come rimuovere tutti i container Docker usciti
Tutti i contenitori Docker chiusi possono essere rimossi eseguendo il comando seguente:
docker rm $(docker ps -a -f status=exited -q)Come fermare e rimuovere tutti i container Docker
Per arrestare tutti i contenitori Docker, devi eseguire:
docker stop $(docker ps -a -q)Per eliminare tutti i contenitori Docker interrotti, devi eseguire:
docker rm $(docker ps -a -q)Come eliminare tutte le immagini, i contenitori, i volumi e le reti Docker inutilizzati
Per eliminare tutte le risorse Docker non utilizzate, puoi utilizzare il seguente comando:
docker system prunePer eliminare completamente tutte le risorse Docker (usate e non utilizzate), eseguire il comando seguente:
docker system prune -aRiepilogo
Nella guida precedente, hai appreso i comandi Docker più comunemente usati e il loro utilizzo con esempi. Spero che questo ti aiuterà a svolgere le attività quotidiane.