26 Comandi Docker con esempi

Foglio informativo sui comandi Docker per sysadmin e sviluppatori …


Docker è un sistema di containerizzazione che impacchetta ed esegue l’applicazione con le sue dipendenze all’interno di un container. Esistono diversi comandi docker che è necessario conoscere quando si lavora con Docker. Questo articolo parla di questo.

Se non sai cos’è Docker, puoi prenderlo Corso per principianti Udemy.

Trovare la versione

Una delle prime cose che vuoi sapere è come trovare la versione docker installata.

[Email protected]: / home / geekflare $ docker –version

Docker versione 18.09.6, build 481bc77

Download immagine

Diciamo che devi estrarre l’immagine della finestra mobile dockerhub (repository docker). L’esempio seguente di estrazione dell’immagine del server HTTP Apache.

[Email protected]: / home / geekflare $ docker pull httpd

Utilizzo del tag predefinito: più recente

ultimo: estrazione dalla libreria / httpd

f5d23c7fed46: pull completato

b083c5fd185b: pull completato

bf5100a89e78: pull completato

98f47fcaa52f: pull completo

622a9dd8cfed: pull completo

Digest: sha256: 8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642

Stato: immagine più recente scaricata per httpd: ultima

[Email protected]: / Home / $ geekflare

immagini

Elencare tutte le immagini della finestra mobile estratte sul sistema con dettagli dell’immagine come TAG / ID IMMAGINE / DIMENSIONE ecc.

[Email protected]: / home / geekflare $ immagini docker

DIMENSIONE IMMAGINE TAG IMMAGINE REPOSITORIA

httpd latest ee39f68eb241 2 giorni fa 154MB

hello-world latest fce289e99eb9 6 mesi fa 1.84kB

sequenceiq / hadoop-docker 2.7.0 789fa0a3b911 4 anni fa 1.76GB

Correre

Esegui l’immagine della finestra mobile menzionata nel comando. Questo comando creerà un contenitore finestra mobile in cui verrà eseguito il server HTTP Apache.

[Email protected]: / home / geekflare $ docker run -it -d httpd

09ca6feb6efc0578951a3e2557ed5855b2edda39a795d9703eb54d975930fe6e

Cosa sta funzionando?

ps elenca tutti i contenitori della finestra mobile in esecuzione con i dettagli del contenitore.

[Email protected]: / home / geekflare $ docker ps

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE

09ca6feb6efc httpd               "httpd-primo piano"   36 secondi fa Fino a 33 secondi 80 / tcp suspicious_bell

Come puoi vedere, il server Apache è in esecuzione in questo contenitore finestra mobile.

ps -a

Elencare tutti i contenitori della finestra mobile in esecuzione / in uscita / arrestati con i dettagli del contenitore.

[Email protected]: / home / geekflare $ docker ps -a

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE

09ca6feb6efc httpd                            "httpd-primo piano"       51 secondi fa Fino a 49 secondi 80 / tcp suspicious_bell

2f6fb3381078 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   2 settimane fa Exited (137) 9 giorni fa quizzical_raman

9f397feb3a46 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -…"   2 settimane fa Uscito (255) 2 settimane fa 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 49707 / tcp, 50010 / tcp, 50020 / tcp, 50070 / tcp, 50075 / tcp, 50090 / tcp determin_ritchie

9b6343d3b5a0 ciao-mondo                      "/Ciao"                 2 settimane fa Exited (0) 2 settimane fa peaceful_mclean

exec

Accedi al contenitore della finestra mobile ed esegui comandi all’interno del contenitore. In questo esempio accedo al contenitore del server Apache.

[Email protected]: / home / geekflare $ docker exec -it 09ca6feb6efc bash

[Email protected]: / usr / local / apache2 # ls

bin build cgi-bin conf error Le icone htdocs includono i moduli di log

[Email protected]: / Usr / local / apache2 #

Digitare exit e premere Invio per uscire dal contenitore.

Rimozione del contenitore

Rimuovere il contenitore finestra mobile con l’ID contenitore indicato nel comando.

[Email protected]: / home / geekflare $ docker rm 9b6343d3b5a0

9b6343d3b5a0

Eseguire il comando seguente per verificare se il contenitore è stato rimosso o meno.

[Email protected]: / home / geekflare $ docker ps -a

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE

09ca6feb6efc httpd                            "httpd-primo piano"       Circa un minuto fa Su Circa un minuto 80 / tcp suspicious_bell

2f6fb3381078 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   2 settimane fa Exited (137) 9 giorni fa quizzical_raman

9f397feb3a46 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -…"   2 settimane fa Uscito (255) 2 settimane fa 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 49707 / tcp, 50010 / tcp, 50020 / tcp, 50070 / TCP, 50075 / TCP, 50090 / TCC determinante

Rimozione dell’immagine

Rimuovere l’immagine della finestra mobile con l’id immagine della finestra mobile menzionato nel comando

[Email protected]: / home / geekflare $ docker rmi fce289e99eb9

Senza tag: ciao-mondo: ultimo

Senza tag: [Email protected]: 41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8

Eliminato: sha256: fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e

Eliminato: sha256: af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3

[Email protected]: / Home / $ geekflare

Riavvia Docker

Riavviare il contenitore finestra mobile con l’ID contenitore indicato nel comando.

[Email protected]: / home / geekflare $ docker restart 09ca6feb6efc

09ca6feb6efc

Eseguire il comando seguente e controllare il parametro STATUS per verificare se il contenitore è stato avviato di recente.

[Email protected]: / home / geekflare $ docker ps

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE

09ca6feb6efc httpd               "httpd-primo piano"   6 minuti fa Fino a 9 secondi 80 / tcp suspicious_bell

Arresto della finestra mobile

Arrestare un contenitore con ID contenitore menzionato nel comando.

[Email protected]: / home / geekflare $ docker stop 09ca6feb6efc

09ca6feb6efc

Eseguire il comando seguente per verificare se il contenitore è ancora in esecuzione o si è arrestato.

[Email protected]: / home / geekflare $ docker ps

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE

Avvio di Docker

Questo comando nella finestra mobile avvia il contenitore finestra mobile con ID contenitore menzionato nel comando.

[Email protected]: / home / geekflare $ docker start 09ca6feb6efc

09ca6feb6efc

Eseguire il comando seguente per verificare se il contenitore è stato avviato o meno.

[Email protected]: / home / geekflare $ docker ps

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE

09ca6feb6efc httpd               "httpd-primo piano"   8 minuti fa Fino a 3 secondi 80 / tcp suspicious_bell

Uccidere

Arrestare immediatamente il contenitore della finestra mobile. Il comando Docker stop arresta il contenitore con garbo, questa è la differenza tra i comandi kill e stop.

[Email protected]: / home / geekflare $ docker kill 09ca6feb6efc

09ca6feb6efc

Esegui il comando seguente per vedere se il container è stato ucciso o meno.

[Email protected]: / home / geekflare $ docker ps

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE

Commettere

Salvare una nuova immagine docker con l’id contenitore menzionato nel comando sul sistema locale. Nell’esempio seguente, geekflare è il nome utente e httpd_image è il nome dell’immagine.

[Email protected]: / home / geekflare $ docker commit 09ca6feb6efc geekflare / httpd_image

sha256: d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c

Accesso

Accedi all’hub docker. Ti verranno chieste le credenziali dell’hub docker per accedere.

[Email protected]: / home / geekflare $ docker login

Accedi con il tuo ID Docker per inviare e estrarre immagini dall’hub Docker. Se non disponi di un ID Docker, vai su https://hub.docker.com per crearne uno.

Nome utente: geekflare

Parola d’ordine:

Configurare un supporto credenziali per rimuovere questo avviso. Vedere

https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Accesso riuscito

Spingere

Carica un’immagine docker con il nome dell’immagine indicato nel comando sulla dockerhub.

[Email protected]: / home / geekflare $ docker push geekflare / httpd_image

Il push si riferisce al repository [docker.io/geekflare/httpd_image]

734d9104a6a2: spinto

635721fc6973: montato dalla libreria / httpd

bea448567d6c: montato dalla libreria / httpd

bfaa5f9c3b51: montato dalla libreria / httpd

9d542ac296cc: montato dalla libreria / httpd

d8a33133e477: montato dalla libreria / httpd

più recenti: digest: sha256: 3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679ac dimensione: 1574

Rete docker

Il seguente comando nella finestra mobile elenca i dettagli di tutta la rete nel cluster.

[Email protected]: / home / geekflare $ docker network ls

SCOPE DEL NOME ID DRIVER DELLA RETE

85083e766f04 bridge bridge locale

f51d1f3379e0 host host locale

5e5d9a192c00 nessuno null locale

Esistono diversi altri comandi di rete docker.

[Email protected]: / home / geekflare $ docker network

Utilizzo: COMMANDER della rete docker

Gestire le reti

comandi:

connect Connette un container a una rete

creare Creare una rete

disconnect Disconnettere un contenitore da una rete

inspect Visualizza informazioni dettagliate su una o più reti

Elenco reti

prune Rimuovi tutte le reti non utilizzate

rm Rimuovere una o più reti

Eseguire ‘COMMANDER Networker –help’ per ulteriori informazioni su un comando.

Informazioni sulla finestra mobile

Ottieni informazioni dettagliate sulla finestra mobile installata sul sistema tra cui la versione del kernel, il numero di contenitori e immagini, ecc.

[Email protected]: / home / geekflare $ informazioni sulla finestra mobile

Contenitori: 3

In esecuzione: 1

In pausa: 0

Fermato: 2

Immagini: 3

Versione server: 18.09.6

Driver di archiviazione: overlay2

File system di supporto: extfs

Supporta d_type: true

Native Overlay Diff: true

Driver di registrazione: json-file

Driver cgroup: cgroupfs

plugin:

Volume: locale

Rete: overlay null macvlan host bridge

Log: awslogs fluentd gcplogs gelf journald file json logentries locali splunk syslog

Sciame: inattivo

Durata: runc

Runtime predefinito: runc

Init Binary: docker-init

versione containerd: bb71b10fd8f58240ca47fbb579b9d1028eea7c84

versione runc: 2b18fe1d885ee5083ef9f0838fee39b62d653e30

versione di init: fec3683

Opzioni di sicurezza:

AppArmor

seccomp

Profilo: impostazione predefinita

Versione del kernel: 4.18.0-25-generico

Sistema operativo: Ubuntu 18.10

OSType: linux

Architettura: x86_64

CPU: 1

Memoria totale: 4.982GiB

Nome: geekflare

ID: RBCP: YGAP: QG6H: B6XH: JCT2: DTI5: AYJA: M44Z: ETRP: 6TO6: OPAY: KLNJ

Docker Root Dir: / var / lib / docker

Modalità debug (client): false

Modalità debug (server): false

Nome utente: geekflare

Registro: https://index.docker.io/v1/

etichette:

Sperimentale: falso

Registri non sicuri:

127.0.0.0/8

Ripristino live abilitato: falso

Licenza del prodotto: Community Engine

Copia del file

Copia un file da un contenitore finestra mobile nel sistema locale.

In questo esempio, sto copiando il file httpd.pid all’interno di un contenitore finestra mobile con ID 09ca6feb6efc in / home / geekflare /

[Email protected]: / home / geekflare $ sudo docker cp 09ca6feb6efc: /usr/local/apache2/logs/httpd.pid / home / geekflare /

[sudo] password per geekflare:

Eseguire il comando seguente per verificare se il file è stato copiato o meno.

[Email protected]: / home / geekflare $ ls

Esempi di documenti desktop esempi.desktop httpd.pid nginx_new.yml nginx.yml

Verifica della cronologia

Mostra la cronologia di un’immagine docker con il nome dell’immagine menzionato nel comando.

g[Email protected]: / home / geekflare $ docker history httpd

IMMAGINE CREATA CREATA DAL FORMATO COMMENTO

ee39f68eb241 2 giorni fa / bin / sh -c # (nop) CMD ["httpd-primo piano"] 0B

           2 giorni fa / bin / sh -c # (nop) EXPOSE 80 0B

           2 giorni fa / bin / sh -c # (nop) file COPY: c432ff61c4993ecd… 138B

           4 giorni fa / bin / sh -c set -eux; savedAptMark ="$ (apt-m… 49,1 MB

           4 giorni fa / bin / sh -c # (nop) ENV HTTPD_PATCHES = 0B

           4 giorni fa / bin / sh -c # (nop) ENV HTTPD_SHA256 = b4ca9d05… 0B

           4 giorni fa / bin / sh -c # (nop) ENV HTTPD_VERSION = 2.4.39 0B

           4 giorni fa / bin / sh -c set -eux; aggiornamento apt-get; apt-g … 35,4 MB

           4 giorni fa / bin / sh -c # (nop) WORKDIR / usr / local / apache2 0B

           4 giorni fa / bin / sh -c mkdir -p "$ HTTPD_PREFIX"  && chow … 0B

           4 giorni fa / bin / sh -c # (nop) ENV PATH = / usr / local / apach… 0B

           4 giorni fa / bin / sh -c # (nop) ENV HTTPD_PREFIX = / usr / loc… 0B

           5 giorni fa / bin / sh -c # (nop) CMD ["bash"] 0B

           5 giorni fa / bin / sh -c # (nop) AGGIUNGI file: 71ac26257198ecf6a… 69.2MB

Verifica dei registri

Mostra i registri del contenitore finestra mobile con ID contenuto menzionato nel comando.

[Email protected]: / home / geekflare $ docker log 09ca6feb6efc

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

[Lun 15 Lug 14: 01: 55.400472 2019] [mpm_event: notice] [pid 1: tid 140299791516800] AH00489: Apache / 2.4.39 (Unix) configurato – ripresa delle normali operazioni

[Lun 15, 14: 01: 55.400615 2019] [core: avviso] [pid 1: tid 140299791516800] AH00094: Riga di comando: ‘httpd -D FOREGROUND’

[Lun 15 Lug 14: 08: 36.798229 2019] [mpm_event: notice] [pid 1: tid 140299791516800] AH00491: catturato SIGTERM, chiusura

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

[Lun 15 Lug 14: 08: 38.259870 2019] [mpm_event: notice] [pid 1: tid 139974087980160] AH00489: Apache / 2.4.39 (Unix) configurato – ripresa delle normali operazioni

[Lun 15 luglio 14: 08: 38.260007 2019] [core: notice] [pid 1: tid 139974087980160] AH00094: Riga di comando: ‘httpd -D FOREGROUND’

[Lun 15 Lug 14: 09: 01.540647 2019] [mpm_event: notice] [pid 1: tid 139974087980160] AH00491: catturato SIGTERM, chiusura

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

[Lun 15, 14: 10: 43.782606 2019] [mpm_event: notice] [pid 1: tid 140281554879616] AH00489: Apache / 2.4.39 (Unix) configurato – ripresa delle normali operazioni

[Lun 15, 14: 10: 43.782737 2019] [core: notice] [pid 1: tid 140281554879616] AH00094: Riga di comando: ‘httpd -D FOREGROUND’

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

AH00558: httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 172.17.0.2. Impostare la direttiva “ServerName” a livello globale per sopprimere questo messaggio

[Lun 15 Lug 14: 14: 08.270906 2019] [mpm_event: notice] [pid 1: tid 140595254346880] AH00489: Apache / 2.4.39 (Unix) configurato – ripresa delle normali operazioni

[Lun 15, 14: 14: 08.272628 2019] [core: notice] [pid 1: tid 140595254346880] AH00094: Riga di comando: ‘httpd -D FOREGROUND’

Cerca immagine

Cerca un’immagine docker su dockerhub con il nome indicato nel comando.

[Email protected]: / home / geekflare $ docker cerca hadoop

NOME DESCRIZIONE STELLE UFFICIALI AUTOMATIZZATE

sequenceiq / hadoop-docker Un modo semplice per provare Hadoop 611 [OK]

uhopper / hadoop Immagine base di Hadoop con configurazione dinamica … 98 [OK]

harisekhon / hadoop Apache Hadoop (HDFS + Filati, tag 2.2 – 2.8) 54 [OK]

bde2020 / hadoop-namenode Hadoop namenode di un cluster hadoop 22 [OK]

kiwenlau / hadoop Esegui Hadoop Cluster in Docker Containers 19

izone / hadoop Hadoop 2.8.5 Ecosistema completamente distribuito, Ju… 14 [OK]

uhopper / hadoop-namenode Hadoop namenode 9 [OK]

bde2020 / hadoop-datanode Datanode Hadoop di un cluster hadoop 9 [OK]

singolarità / hadoop Apache Hadoop 8 [OK]

uhopper / hadoop-datanode Hadoop datanode 7 [OK]

harisekhon / hadoop-dev Apache Hadoop (HDFS + Filati) + Strumenti di sviluppo + Gi… 6 [OK]

Aggiornamento della configurazione

Aggiorna configurazioni del contenitore. Questo mostra tutte le opzioni di aggiornamento.

[Email protected]: / home / geekflare $ docker update –help

Utilizzo: aggiornamento docker [OPZIONI] CONTAINER [CONTAINER …]

Aggiorna la configurazione di uno o più contenitori

Opzioni:

–blkio-weight uint16 Blocco IO (peso relativo), compreso tra 10 e 1000 o 0 per disabilitare

(impostazione predefinita 0)

–cpu-period int Limita periodo CPU CFS (Completely Fair Scheduler)

–cpu-quota int Limita quota CPU CFS (Completely Fair Scheduler)

–cpu-rt-period int Limita il periodo di tempo reale della CPU in microsecondi

–cpu-rt-runtime int Limita il runtime in tempo reale della CPU in microsecondi

-c, –cpu-share int condivisioni CPU (peso relativo)

–cpus decimal Numero di CPU

–CPU stringa cpuset-cpus in cui consentire l’esecuzione (0-3, 0,1)

–stringa cpuset-mems MEMs in cui consentire l’esecuzione (0-3, 0,1)

–byte di memoria del kernel Limite di memoria del kernel

-m, –memory bytes Limite di memoria

–byte di prenotazione memoria Limite soft della memoria

–byte di scambio di memoria Limite di scambio pari alla memoria più scambio: ‘-1’ per abilitare lo scambio illimitato

–riavvia stringa Riavvia il criterio da applicare all’uscita di un contenitore

Eseguire il comando seguente per aggiornare la configurazione della CPU del contenitore docker con ID contenitore menzionato nel comando.

[Email protected]: / home / geekflare $ docker update -c 1 2f6fb3381078

2f6fb3381078

Creare volume

Creare un volume che il contenitore docker utilizzerà per archiviare i dati.

[Email protected]: / home / geekflare $ finestra mobile volume creato

7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Eseguire il comando seguente se il volume è stato creato o meno.

[Email protected]: / home / geekflare $ finestra mobile volume ls

NOME VOLUME PILOTA

local 7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Installazione plug-in

Installa un plug-in docker vieux / sshfs con l’ambiente di debug impostato su 1.

[Email protected]: / home / geekflare $ docker plug-in installa vieux / sshfs DEBUG = 1

Collegare "vieux / sshfs" richiede i seguenti privilegi:

– rete: [host]

– mount: [/ var / lib / docker / plugins /]

– mount: []

– dispositivo: [/ dev / fuse]

– capacità: [CAP_SYS_ADMIN]

Concedi le autorizzazioni di cui sopra? [y / N] y

ultimo: estrarre da vieux / sshfs

52d435ada6a4: download completato

Digest: sha256: 1d3c3e42c12138da5ef7873b97f7f32cf99fb6edde75fa4f0bcf9ed277855811

Stato: immagine più recente scaricata per vieux / sshfs: ultima

Plug-in installato vieux / sshfs

Eseguire il comando seguente per elencare i plugin docker.

[Email protected]: / home / geekflare $ docker plugin ls

ID NOME DESCRIZIONE ABILITATO

2a32d1fb95af vieux / sshfs: ultimo plug-in sshFS per Docker true

Disconnettersi

Disconnessione da dockerhub.

[Email protected]: / home / geekflare $ logout logout

Rimozione delle credenziali di accesso per https://index.docker.io/v1/

Conclusione

Spero che tu abbia una buona comprensione dei comandi della finestra mobile ormai. Prova questi comandi nel tuo ambiente di sviluppo o di laboratorio per esercitarti e imparare.

Se sei interessato a imparare Docker e Kubernetes, dai un’occhiata a questo corso online.

TAGS:

  • docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map