Aiuta lo sviluppo del sito, condividendo l'articolo con gli amici!

Introduzione al comando Docker run

Il comando 'docker run' viene utilizzato per eseguire o avviare un comando in un nuovo contenitore, il che significa che crea un livello scrivibile sopra l'immagine menzionata nel comando. Ecco perché chiamiamo contenitore un'immagine scrivibile. Questo è il primo comando che eseguiamo quando iniziamo ad apprendere Docker. Ci sono molte opzioni disponibili con questo comando per configurare il contenitore secondo i nostri requisiti come eseguire un contenitore in modalità separata o interattiva, specificare un nome per il contenitore, collegare rete, volume, ecc., esponendo la porta per accedere all'applicazione dei contenitori esternamente e molte altre cose.

Sintassi

docker esegui (OPZIONI) IMMAGINE (COMANDO) (ARG… )

Opzioni:

-d, -detach: viene utilizzato per eseguire il container in background e stampare l'ID del container.

-e, -env: viene utilizzato per impostare le variabili di ambiente nel contenitore.

-h, -hostname: viene utilizzato per modificare il nome host del contenitore.

-i, -interactive: serve per interagire con il container

-isolamento: viene utilizzato per specificare la tecnologia di isolamento dei container

-l, -lable: viene utilizzato per aggiungere metadati al contenitore.

-link: Aggiunge un collegamento a un altro container

-log-driver: viene utilizzato per specificare il driver di registrazione per il container, sovrascrive il log-driver predefinito

-log-opts: viene utilizzato per specificare le opzioni per log-driver.

-m, -memory: viene utilizzato per impostare il limite di memoria in byte

-mount: viene utilizzato per montare il filesystem sul container

-name: viene utilizzato per specificare il nome del contenitore

-rete: viene utilizzata per connettere il container a una rete diversa da quella predefinita

-p, -publish: viene utilizzato per pubblicare le porte del container su host

-restart: ci consente di specificare la politica di riavvio per il container

-rm: rimuove il container non appena il container esce o smette di funzionare

-t, -tty: alloca il terminale e viene utilizzato principalmente con l'opzione '-i'.

-v, -volume: viene utilizzato per legare il volume al contenitore per l'archiviazione persistente

-w, -workdir: Permette di impostare la directory di lavoro del container

Le opzioni di cui sopra sono le più comuni che usiamo frequentemente mentre lavoriamo con il comando 'docker run'. Possiamo usare l'opzione '-help' per elencare tutte le opzioni disponibili di questo comando come di seguito: -

docker run --help

Come funziona il comando eseguito in Docker?

Quando eseguiamo il comando 'docker run' sul terminale, il demone Docker cerca l'immagine Docker menzionata localmente e se trova l'immagine localmente crea un livello scrivibile sull'immagine Docker specificata e avvia il contenitore usando comando specificato e se non trova l'immagine localmente, prima estrae quell'immagine dal registro e, per impostazione predefinita, va su "hub.docker.com" se non è presente alcun registro locale menzionato nel file daemon.json.

Esempi di comando eseguito da Docker

Ecco i seguenti esempi citati di seguito

Esempio 1

Eseguiamo il nostro primo container 'hello world senza specificare alcuna opzione come mostrato di seguito:

docker run hello-world

Spiegazione: Nell'istantanea sopra, possiamo vedere che l'immagine 'hello-world' non era disponibile localmente, quindi daemon ha prima estratto quell'immagine localmente ed eseguito il contenitore e il Il contenitore 'hello-world' ha mostrato alcuni dati su STDOUT ed è uscito.

Esempio 2

Diamo un nome al contenitore usando l'opzione '-name' come di seguito:

docker run -name nginx-con nginx

Spiegazione: Nell'esempio sopra, creato un contenitore nginx chiamato 'nginx-con'. Se non utilizziamo l'opzione '-name', il demone sceglie casualmente qualsiasi nome e lo assegna al contenitore. Inoltre, possiamo vedere che il cursore è bloccato e non abbiamo ottenuto il terminale perché il contenitore è in esecuzione in primo piano.Usiamo 'ctrl+c' per uscire dal contenitore, ma interrompe anche il contenitore.

Esempio 3

Eseguiamo il contenitore in modalità separata per superare il problema precedente utilizzando l'opzione '-d' come mostrato di seguito:

docker run -d --name nginx-con2 nginx

Spiegazione: Nell'esempio sopra, abbiamo ottenuto l'ID del contenitore solo perché il contenitore ora è in esecuzione in background e anche questa volta il demone non ha estratto l'immagine perché nginx image è già disponibile localmente.

Esempio 4

Ora, imposta le variabili d'ambiente usando l'opzione '-e' come di seguito:

"docker run -d -e USER=test1 --name nginx-con nginx"

Spiegazione: Nell'esempio sopra, abbiamo usato l'opzione '-e' per impostare una variabile di ambiente USER su test1.Ora, se vogliamo verificare che la variabile d'ambiente USER creata all'interno del contenitore o meno, possiamo collegarci al contenitore usando il comando 'exec' con le opzioni '-i' e '-t' insieme come mostrato di seguito: -

docker exec -it nginx-con sh
eco $USER

Spiegazione: Nell'istantanea sopra, ci siamo collegati al contenitore con il suo nome, tuttavia, possiamo usare anche l'ID contenitore e il contenitore deve essere in stato di esecuzione in per connetterti ad esso.

Esempio 5

Possiamo anche usare le opzioni di cui sopra con il comando 'docker run' come mostrato di seguito:

"docker run -it -e USER=test1 --name nginx-con nginx sh"

Spiegazione: Nell'esempio sopra, possiamo vedere che non abbiamo usato l'opzione '-d' altrimenti eseguirà il contenitore in background e non sarà in grado di connettersi al contenitore, il che significa che non possiamo usare le opzioni '-d' e '-it' insieme.

Esempio 6

Supponiamo di dover creare un contenitore nginx chiamato 'my-nginx' con la configurazione seguente:

  • Allega un volume chiamato mio-vol
  • Collega una rete denominata my-net
  • Limita l'utilizzo della memoria a 256 MB
  • Apri la porta 80 per accedere a nginx esternamente
  • Imposta il criterio di riavvio su a meno che non venga interrotto
  • Imposta il nome host del contenitore su 'my-nginx'

Ecco il comando 'docker run' per raggiungere l'obiettivo di cui sopra: -

$ docker run -it -v my-vol:/root --network=my-net -m 256m -p 80:80 --restart=unless-stop -h my-nginx --name my- nginx nginx sh

Spiegazione: Nell'esempio sopra, abbiamo usato l'opzione '-it' per connetterci direttamente al container per verificare il nome host altrimenti possiamo usare '-d' opzione.Nota: - La rete deve esistere prima di creare il container. Possiamo creare una rete semplice usando il comando seguente:

rete mobile crea la mia rete

Esempio 7

A volte creiamo un contenitore a scopo di test e il contenitore non è più necessario dopo il test, quindi possiamo utilizzare l'opzione '-rm' per eliminare il contenitore una volta interrotto. Ecco il comando:

docker run --it --rm ubuntu sh

Spiegazione: Nell'istantanea sopra, possiamo vedere che non c'è nessun container in esecuzione prima e dopo la creazione del container 'ubuntu' perché una volta usciti dal container, viene rimosso. Possiamo usarlo per testare la connessione tra due container usando il comando ping direttamente nella riga di comando.

Vantaggi

  1. Il comando 'docker container' è un breve comando per eseguire un container rispetto al comando 'docker container run'.
  2. Ha molte opzioni per configurare i contenitori secondo i nostri requisiti.

Regole e regolamenti per l'utilizzo di un comando di corsa

  1. La rete Docker deve esistere prima di collegarsi a qualsiasi container utilizzando il comando 'docker run'.
  2. Il volume Docker viene creato se non esiste già durante il collegamento a qualsiasi contenitore.
  3. Non ha senso usare insieme le opzioni '-d' e '-it'.
  4. Possiamo utilizzare la stessa porta per il diverso container ma non a livello di host, ad esempio, possiamo creare più container nginx e aprire la porta 80 su ciascun container ma non possiamo esporre questi container esternamente sulla stessa porta , dobbiamo esporre ciascun container su una porta diversa per accedervi esternamente.
  5. Alcune opzioni funzionano solo con una versione specifica di Docker, quindi si consiglia di verificare la compatibilità prima di utilizzare tale opzione.

Conclusione

Il comando 'docker run' ha molte opzioni ma non tutte le opzioni sono usate frequentemente, quindi abbiamo discusso solo delle opzioni usate più frequentemente. Puoi leggere la documentazione ufficiale per conoscere tutte le opzioni o utilizzare l'opzione '-help' per ottenere tutte le opzioni disponibili.

Aiuta lo sviluppo del sito, condividendo l'articolo con gli amici!