GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Docker Run vs Start vs Create:Rozdíl je vysvětlen

Pokud jste s Dockerem noví a učíte se ho sledováním různých výukových programů, můžete se setkat s pojmy jako spustit kontejner dockeru, spustit kontejner dockeru nebo vytvořit kontejner dockeru.

Tyto výrazy stačí ke zmatení začátečníků dockeru, protože všechny tři příkazy dockeru se zdají podobné.

Ve skutečnosti je obzvláště obtížné rozpoznat rozdíl mezi spuštěním dockeru a spuštěním dockeru.

Není spuštění kontejneru stejné jako jeho spuštění? Vlastně ne.

Dovolte mi, abych vám to vysvětlil.

Rozdíl mezi Docker run, Docker start a Docker create

Tyto příkazy dělají toto:

Příkaz vytvoření Dockeru vytvoří nový nový kontejner z obrazu dockeru. Nespustí jej však okamžitě.

Příkaz spuštění Dockeru spustí jakýkoli zastavený kontejner. Pokud jste k vytvoření kontejneru použili příkaz docker create, můžete jej spustit tímto příkazem.

Příkaz spuštění Dockeru je kombinací vytvořit a spustit, když vytvoří nový kontejner a okamžitě jej spustí. Ve skutečnosti může příkaz docker run dokonce stáhnout obrázek z Docker Hub, pokud nenajde zmíněný obrázek ve vašem systému.

Podívejme se na to na příkladech, aby vám byly věci jasnější.

Podívejme se na to na příkladech

Pokud chcete postupovat podle příkladů, ujistěte se, že jste nainstalovali Docker.

Řekněme, že si stáhnete obraz Ubuntu z Docker Hub pomocí příkazu docker pull ubuntu.

Můžete vidět všechny dostupné obrázky dockeru ve vašem systému. V tomto příkladu mám pouze ubuntu (aby nedošlo k záměně):

[email protected]:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              775349758637        5 weeks ago         64.2MB

Nyní vytvořte nový kontejner dockeru s názvem kontejner-1 pomocí příkazu docker create:

[email protected]:~$ docker create --name container-1 ubuntu
2d9a8c190e6c9b3cbbc032a87762bfbc92f1dc0dd30abbe9bdb3ed7e74a6480f

Můžete vidět, že vytvořil nový kontejner. Pokud se pokusíte zobrazit všechny běžící kontejnery, neuvidíte kontejner 1, protože ačkoli byl vytvořen, nikdy nebyl spuštěn.

[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Pokud zkontrolujete všechny kontejnery, bez ohledu na to, zda běží nebo ne, uvidíte, že kontejner-1 má stav Vytvořeno:

[email protected]:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
2d9a8c190e6c        ubuntu              "/bin/bash"         18 seconds ago      Created                                 container-1

Nyní použijeme příkaz docker run k vytvoření a spuštění kontejneru s názvem container-2:

[email protected]:~$ docker run -it -d --name container-2 ubuntu bash
13dc0f4226dc8d9d86e41d927c5616654d8263da2cc8c667aaa5b4dbd7f7e9b3

Můžete vidět, že kontejner-2 běží, protože jeho stav je Up:

[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

Zastavme tento běžící kontejner:

[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

Nyní, když máme zastavený kontejner, můžete jej znovu spustit pomocí příkazu docker start :

[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

Ale co se stane s kontejnerem-1, který byl vytvořen pomocí příkazu docker create? Tento kontejner můžete spustit příkazem docker start a poté pomocí docker exec spustit něco konkrétního.

Doufám, že vám tento článek poskytl lepší pochopení příkazů spuštění dockeru, spuštění dockeru a vytvoření dockeru. Doporučím vám seznámit se s životním cyklem kontejneru, abyste tomuto tématu lépe porozuměli.

Příkazy Dockeru pro správu životního cyklu kontejneru Naučte se koncept životního cyklu kontejneru. Naučte se také příkazy Dockeru pro správu každé fáze životního cyklu kontejnerů. Linux HandbookDebdut Chakraborty

Máte-li dotazy nebo návrhy, neváhejte zanechat komentář níže.


Docker
  1. Jak spustit Nginx v kontejneru Docker:Průvodce krok za krokem

  2. Jak vytvářet, zobrazovat a mazat kontejnery Docker v systému Linux

  3. rozdíl mezi podmanem a dockerem.

  1. Jak spustit program uvnitř kontejneru Docker?

  2. Úvod do Dockeru

  3. Jak spustit MySQL v kontejneru Docker

  1. Jak spustit příkaz na spuštěném kontejneru Docker

  2. Jak vytvořit Docker Image z kontejneru a Dockerfile

  3. Automaticky spouštět služby v kontejneru Docker