Se non conosci Docker e lo impari seguendo vari tutorial, potresti imbatterti in termini come avviare contenitore mobile, eseguire contenitore mobile o creare contenitore mobile.
Questi termini sono sufficienti per confondere un principiante della finestra mobile perché tutti e tre i comandi della finestra mobile sembrano simili.
In effetti, è particolarmente difficile distinguere tra docker run e docker start.
L'esecuzione di un container non equivale all'avvio? Non proprio.
Lascia che te lo spieghi.
Differenza tra esecuzione Docker, avvio Docker e creazione Docker
Ecco cosa fanno questi comandi:
Comando di creazione Docker crea un nuovo contenitore nuovo da un'immagine Docker. Tuttavia, non lo esegue immediatamente.
Comando di avvio di Docker avvierà qualsiasi contenitore fermo. Se hai utilizzato il comando docker create per creare un contenitore, puoi avviarlo con questo comando.
Comando di esecuzione di Docker è una combinazione di crea e avvia poiché crea un nuovo contenitore e lo avvia immediatamente. In effetti, il comando docker run può anche estrarre un'immagine da Docker Hub se non trova l'immagine menzionata sul tuo sistema.
Vediamolo con esempi in modo che le cose ti siano più chiare.
Vediamolo con esempi
Assicurati di aver installato Docker se vuoi seguire gli esempi.
Diciamo che scarichi l'immagine di Ubuntu da Docker Hub usando il comando docker pull ubuntu.
Puoi vedere tutte le immagini della finestra mobile disponibili sul tuo sistema. Ho solo Ubuntu in questo esempio (per evitare confusione):
[email protected]:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 775349758637 5 weeks ago 64.2MB
Ora crea un nuovo contenitore Docker denominato container-1 con il comando di creazione finestra mobile:
[email protected]:~$ docker create --name container-1 ubuntu
2d9a8c190e6c9b3cbbc032a87762bfbc92f1dc0dd30abbe9bdb3ed7e74a6480f
Puoi vedere che ha creato un nuovo contenitore. Se provi a vedere tutti i contenitori in esecuzione, non vedrai il contenitore-1 perché sebbene sia stato creato, non è mai stato avviato.
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Se controlli tutti i contenitori, indipendentemente dal fatto che siano in esecuzione o meno, vedrai che il contenitore-1 ha lo stato Creato:
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d9a8c190e6c ubuntu "/bin/bash" 18 seconds ago Created container-1
Ora utilizziamo il comando docker run per creare ed eseguire un contenitore denominato container-2:
[email protected]:~$ docker run -it -d --name container-2 ubuntu bash
13dc0f4226dc8d9d86e41d927c5616654d8263da2cc8c667aaa5b4dbd7f7e9b3
Puoi vedere che il container-2 è in esecuzione poiché il suo stato è Su:
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" About a minute ago Up About a minute container-2
Fermiamo questo contenitore in esecuzione:
[email protected]:~$ docker stop container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 2 minutes ago Exited (0) 28 seconds ago container-2
2d9a8c190e6c ubuntu "/bin/bash" 3 minutes ago Created container-1
Ora che abbiamo un contenitore interrotto, puoi riavviarlo utilizzando il comando di avvio della finestra mobile :
[email protected]:~$ docker start container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 2 minutes ago Up 2 seconds container-2
Ma cosa succede al container-1 che è stato creato usando il comando docker create? Puoi avviare questo contenitore con il comando docker start e quindi utilizzare docker exec per eseguire qualcosa di specifico con esso.
Spero che questo articolo ti abbia dato una migliore comprensione del comando Docker Run, Docker Start e Docker Create. Ti consiglierò di conoscere il ciclo di vita del contenitore per comprendere ulteriormente questo argomento.
Comandi Docker per la gestione del ciclo di vita dei containerScopri il concetto di ciclo di vita dei container. Impara anche i comandi Docker per gestire ogni fase del ciclo di vita dei container. Linux HandbookDebdut ChakrabortySe hai domande o suggerimenti, non esitare a lasciare un commento qui sotto.