Il container Docker è una delle tecnologie più emergenti al giorno d'oggi. I container Docker sono generalmente utilizzati nella piattaforma CI/CD (Continuous Integration/Continuous Deployment). I container sono le VM leggere (Macchine virtuali) che utilizzano le risorse degli hypervisor sottostanti come (RAM, CPU, HDD e kernel).
Il comando Docker viene utilizzato per gestire contenitori e immagini dalla riga di comando. In questo articolo tratteremo 20 utili esempi di comandi docker in Linux. Presumo che la finestra mobile sia già installata sul tuo sistema Linux e che il tuo utente normale sia stato aggiunto al gruppo della finestra mobile.
1) Verifica la versione Docker
La prima attività importante quando si lavora sui contenitori docker è conoscere la versione della finestra mobile, eseguire sotto il comando docker per conoscere la versione
$ docker --version Docker version 20.10.12, build e91ed57 $
2) Visualizza le informazioni a livello di sistema
Il comando "informazioni docker" viene utilizzato per visualizzare le informazioni a livello di sistema come la directory principale Docker, la versione del sistema operativo, la versione del kernel, la versione Docker, la RAM, la CPU e il registro Docker.
$ docker info
3) Cerca immagini Docker
Usando il comando "ricerca finestra mobile" possiamo cercare le immagini del contenitore della finestra mobile dal registro dell'hub della finestra mobile, supponiamo che io voglia cercare le immagini della finestra mobile più recenti di nginx.
$ docker search nginx
L'output del comando sopra apparirà come sotto,
4) Scarica le immagini del contenitore Docker
Il comando Docker pull viene utilizzato per scaricare le immagini del contenitore dal registro dell'hub Docker.
Sintassi :
$ Docker pull
Il comando pull Docker prova sempre a scaricare l'ultima versione dell'immagine, anche se possiamo specificare la versione particolare dell'immagine. Supponiamo che io voglia scaricare l'ultima versione dell'immagine rsyslog
$ docker pull nginx Using default tag: latest latest: Pulling from library/nginx 5eb5b503b376: Pull complete 1ae07ab881bd: Pull complete 78091884b7be: Pull complete 091c283c6a66: Pull complete 55de5851019b: Pull complete b559bad762be: Pull complete Digest: sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest $
Scaricando un'immagine specifica in base alla versione, supponiamo di voler scaricare Ubuntu:20:04 immagine docker, eseguire
$ docker pull ubuntu:20.04 20.04: Pulling from library/ubuntu 08c01a0ec47e: Pull complete Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be Status: Downloaded newer image for ubuntu:20.04 docker.io/library/ubuntu:20.04 $
5) Visualizza le immagini del contenitore Docker scaricate
Poiché sappiamo che la directory principale della finestra mobile è '/var/lib/docker', quindi ogni volta che scarichiamo le immagini utilizzando il comando pull della finestra mobile, tutte le immagini verranno salvate nella directory principale della finestra mobile.
Per visualizzare tutte le immagini del contenitore Docker scaricate, esegui
$ docker image ls or $ docker images
Uscita
6) Esegui Docker Container
I container vengono avviati con il comando "docker run", supponiamo che io voglia eseguire un container dall'immagine nginx.
$ docker run -it -p 9000:80 --name=myapp nginx
uscita
Sopra verrà eseguito un container con il nome "myapp" e impostiamo anche la regola pat in modo tale che se una richiesta arriva alla porta 9000 sull'host docker, quella richiesta verrà reindirizzata al container myapp sulla porta 80. Se potresti aver notato che otteniamo direttamente la console subito dopo aver eseguito il comando. Digita exit per fermare/spegnere il container e se vuoi uscire dal container senza fermarlo, digita “ctrl+p+q”
Ora puoi accedere alla tua app nginx sulla porta 9000 usando il comando curl,
$ curl http://<Docker-Host-IP-Address>:9000/
7) Esegui il contenitore in modalità scollegamento
Possiamo eseguire un contenitore in modalità di scollegamento usando l'opzione -d nel comando "docker run". Qui la modalità di distacco significa che avremo il prompt dei comandi dopo aver eseguito il comando di esecuzione mobile. L'esempio è mostrato di seguito,
$ docker run -it -d -p 9080:80 --name=myapp2 httpd f7dc2ece64708a9de5e53f341b0c7d17ac9189fb7c99079ad8744348bc5a6faa $
8) Visualizza tutti i container in esecuzione
Il comando Esegui 'docker ps' viene utilizzato per visualizzare tutti i contenitori in esecuzione
$ docker ps
Per visualizzare tutti i contenitori in esecuzione insieme a quelli chiusi o interrotti, esegui
$ docker ps -a
9) Accesso alla console del contenitore
Per ottenere l'accesso alla console del contenitore, esegui il comando "docker exec"
[email protected]:~$ docker exec -it myapp /bin/bash [email protected]:/#
Per uscire dalla console, digita il comando exit
10) Avvia, ferma, riavvia e interrompi i container
Proprio come le macchine virtuali, possiamo avviare, arrestare e riavviare i container Docker.
Usa il comando seguente per interrompere un contenitore in esecuzione
$ docker stop myapp2 myapp2 $
Al posto del nome del contenitore possiamo anche utilizzare l'ID contenitore
Usa il comando seguente per avviare un container.
$ docker start myapp2 myapp2 $
Usa il comando seguente per riavviare un container.
$ docker restart myapp2 myapp2 $
Proprio come il processo, possiamo anche uccidere un contenitore, usa il comando seguente per uccidere un contenitore.
[email protected]:~$ docker kill myapp2 myapp2 [email protected]:~$
11) Rimuovere un contenitore
Docker Container viene rimosso o eliminato utilizzando il comando 'docker rm'. 'docker rm' funzionerà solo quando la finestra mobile viene arrestata/spenta.
Sintassi:
$ docker rm {nome_container_OR_id_container}
$ docker stop test-app test-app $ docker rm test-app test-app $
Per rimuovere con forza un contenitore in esecuzione, utilizzare l'opzione '-f' nel comando docker rm. L'esempio è mostrato sotto
$ docker rm -f nginx-app
12) Rimuovere le immagini del contenitore Docker
Proprio come i contenitori, possiamo anche eliminare o rimuovere le immagini della finestra mobile. Il comando 'docker rmi' viene utilizzato per rimuovere le immagini del contenitore della finestra mobile.
Supponiamo di voler eliminare un'immagine della finestra mobile "Ubuntu:20.04", esegui
$ docker rmi ubuntu:20.04 Untagged: ubuntu:20.04 Untagged: [email protected]:669e010b58baf5beb2836b253c14f7c07a4dc93f474be Deleted: sha256:54c9d81cbb440897908abdcaa98674db831e40a66f704f Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f629593310578d2 $
Nel comando precedente possiamo usare l'id dell'immagine al posto del nome dell'immagine
$ docker rmi 54c9d81cbb44
13) Salva e carica l'immagine del contenitore Docker
Per salvare un'immagine della finestra mobile in un file tar, usa il comando 'salva finestra mobile', l'esempio è mostrato di seguito:
$ docker save nginx -o mynginx.tar $ ls -l mynginx.tar -rw------- 1 sysops sysops 145931776 Feb 5 10:30 mynginx.tar $
Per caricare un'immagine della finestra mobile da un file tar, usa il comando 'caricamento finestra mobile'
$ docker load -i mynginx.tar Loaded image: nginx:latest $
Nota:questi comandi diventano utili quando desideriamo trasferire l'immagine della finestra mobile da un host Docker a un altro.
14) Copia file/cartelle nel contenitore
Possiamo copiare file o cartelle in un contenitore dall'host Docker usando il comando 'docker cp'. Di seguito stiamo copiando la cartella "mycode" nel contenitore myapp
$ docker cp mycode myapp:/tmp
15) Visualizza la cronologia di un'immagine Docker
La cronologia dell'immagine Docker qui indica quali comandi vengono eseguiti durante la creazione di immagini Docker, possiamo visualizzare questi comandi usando la "cronologia Docker"
Sintassi:#
$ cronologia della finestra mobile {Image_Name_OR_Image_id}
$ docker history nginx
16) Visualizza i registri dal contenitore
Possiamo visualizzare i registri dai contenitori senza effettuare il login, eseguire il comando "registri docker"
Sintassi :
$ registri docker {container_name_or_container_id}
$ docker logs myapp
Per visualizzare i registri in tempo reale, utilizzare l'opzione '-f' nel comando dei registri mobili
$ docker logs -f myapp
Per visualizzare gli ultimi 10 log da un container, esegui
$ docker logs --tail 10 myapp
17) Visualizza le statistiche sull'utilizzo delle risorse dei contenitori
Per visualizzare l'utilizzo di CPU, memoria e I/O di rete di tutti i container, esegui il comando "docker stats"
$ docker stats
Il comando sopra mostrerà lo streaming live delle statistiche sull'utilizzo delle risorse di tutti i contenitori.
Per visualizzare le statistiche di un container specifico, esegui le statistiche docker seguite da container
$ docker stats myapp
Statistiche sull'utilizzo delle risorse senza live streaming
$ docker stats --no-stream
Possiamo visualizzare i processi in esecuzione di un container con "docker top ' comando.
Sintassi:#
superiore della finestra mobile {Container_Name_OR_ID}
$ docker top myapp
18) Visualizza l'indirizzo IP del contenitore
Le informazioni di basso livello del contenitore vengono visualizzate utilizzando il comando "docker inspect". Possiamo recuperare l'indirizzo IP di un container dal comando "docker inspect"
Sintassi:
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
Esempio
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myapp 172.17.0.2 $
19) Crea immagine contenitore Docker
L'immagine del contenitore Docker viene compilata utilizzando il comando "docker build", ma per il comando Docker build prima dobbiamo creare Dockerfile. Supponiamo che Dockerfile sia stato creato nella cartella mycode, quindi esegui il seguente comando per creare l'immagine della finestra mobile,
$ cd mycode $ docker build -t mynginx:v2 .
Leggi anche :Come creare un'immagine Docker con Dockerfile (passo dopo passo)
20) Imposta il tag sull'immagine Docker
Il comando 'docker tag' viene utilizzato per impostare il tag su un'immagine.
Sintassi :
$ tag docker source_image{:tag} target_image{:tag}
Supponiamo di voler impostare il tag dell'immagine sorgente "mariadb:latest" come "mariadb:10.03"
$ docker tag mariadb:latest mariadb:10.03 $ docker images | grep -i mariadb mariadb 10.03 45a5a43e143a 3 days ago 410MB mariadb latest 45a5a43e143a 3 days ago 410MB $
Se desideri caricare l'immagine nel tuo registro privato, tagga l'immagine in modo tale che dovrebbe avere l'URL del registro seguito dal progetto e dall'immagine.
$ docker tag mariadb:latest myregistry:5000/db/mariadb:10.03
Ora accedi al tuo registro privato usando il comando "docker login" ed esegui il comando docker push per caricarlo.
$ docker push myregistry:5000/db/mariadb:10.03
Questo è tutto da questo articolo. Spero che tu abbia trovato questi esempi informativi. Sentiti libero di condividere le tue domande e commenti nelle sezioni dei commenti qui sotto.
Leggi anche :Come creare e utilizzare la rete MacVLAN in Docker