GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

I comandi [Docker] più utili che tutti dovrebbero conoscere [esempi]

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 -y

Dopo 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 -y

Una 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 -y

Il 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 --version

Dovresti vedere la versione Docker nel seguente output:

Docker version 19.03.13, build 4484c46d9d

Se desideri rimuovere il pacchetto Docker dal tuo sistema, esegui il comando seguente:

apt-get remove docker-ce

Installa 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.repo

Una 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 -r

Dovresti 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 --nobest

Una volta installato Docker, verifica la versione installata con il seguente comando:

docker --version

Dovresti ottenere il seguente output:

Docker version 19.03.13, build 4484c46d9d

Per avviare il servizio Docker, esegui il comando seguente:

systemctl start docker

Per interrompere il servizio Docker, esegui il comando seguente:

systemctl stop docker

Puoi anche eseguire il comando seguente per visualizzare ulteriori informazioni su Docker:

docker info

Dovresti vedere il seguente output:

Se desideri rimuovere il pacchetto Docker dal tuo sistema, esegui il comando seguente:

dnf remove docker-ce

Gestione 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 httpd

Dovresti 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 httpd

Connetti 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/bash

Dovresti 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 httpd

Dovresti 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 httpd

Bind 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 httpd

Ora 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 -a

Dovresti vedere tutti i contenitori nel seguente output:

Per elencare solo i container in esecuzione nel tuo sistema, esegui il comando seguente:

docker ps

Puoi 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 apacheweb

Dovresti 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 apacheweb

Dovresti 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 apacheweb

Dovresti 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 apacheweb

Per avviare il contenitore denominato apacheweb , esegui il comando seguente:

docker container start apacheweb

Per mettere in pausa il contenitore denominato apacheweb , esegui il comando seguente:

docker container pause apacheweb

Riavvia o elimina il container Docker

Per riavviare il contenitore in esecuzione denominato apacheweb , esegui il comando seguente:

docker container restart apacheweb

Per terminare il contenitore in esecuzione denominato apacheweb , esegui il comando seguente:

docker container kill apacheweb

Collega 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 nginx

Dovresti 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 login

Una volta effettuato l'accesso, esegui il comando seguente per ottenere l'ID dell'immagine Nginx e tagga l'immagine con il seguente comando:

docker images

Uscita:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        3 weeks ago         133MB
httpd               latest              3dd970e6b110        3 weeks ago         138MB

Aggiungi tag all'immagine Docker

Quindi, tagga l'immagine con il seguente comando:

docker tag f35646e83998 amaksimov/nginx

Dove:

  • 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/nginx

Dovresti 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-image

Per 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-image

Dovresti 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 httpd

Nel 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 datavolume

Elenca tutti i volumi Docker

Per elencare il volume creato, esegui il seguente comando:

docker volume ls

Dovresti vedere il seguente output:

Per stampare ulteriori informazioni sul volume, eseguire il comando seguente:

docker inspect datavolume

Dovresti 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 httpd

Volume Docker remoto

Per rimuovere il volume, esegui il seguente comando:

docker volume rm datavolume

Domande 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 prune

Per eliminare completamente tutte le risorse Docker (usate e non utilizzate), eseguire il comando seguente:

docker system prune -a

Riepilogo

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.


Docker
  1. 30 cose che non sapevi del kernel Linux

  2. 10 comandi che ogni utente Linux dovrebbe conoscere

  3. I comandi Nginx più utili nel sistema Linux

  4. 10 comandi Ubuntu Linux più utili

  5. Esempi utili del comando Docker ps

Alternative Kubernetes ai comandi Docker

Tutto ciò che devi sapere sull'utilizzo di Docker Compose

21 comandi essenziali che ogni utente Docker dovrebbe conoscere

I 50 comandi Linux più utili da eseguire nel terminale

I 50 comandi Zypper più utili per gli utenti SUSE Linux

Utili comandi Bash di cui potresti non essere a conoscenza