GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Docker Run vs. Start vs. Create:Unterschied erklärt

Wenn Docker für Sie neu ist und Sie es lernen, indem Sie verschiedenen Tutorials folgen, stoßen Sie möglicherweise auf Begriffe wie Docker-Container starten, Docker-Container ausführen oder Docker-Container erstellen.

Diese Begriffe reichen aus, um einen Docker-Anfänger zu verwirren, da alle drei Docker-Befehle ähnlich zu sein scheinen.

Tatsächlich ist es besonders schwierig, den Unterschied zwischen docker run und docker start zu erkennen.

Ist das Ausführen eines Containers nicht dasselbe wie das Starten? Nicht wirklich.

Lass es mich dir erklären.

Unterschied zwischen Docker run, Docker start und Docker create

Diese Befehle bewirken Folgendes:

Docker-Erstellungsbefehl erstellt einen frischen neuen Container aus einem Docker-Image. Es wird jedoch nicht sofort ausgeführt.

Docker-Startbefehl startet jeden angehaltenen Container. Wenn Sie den Befehl docker create zum Erstellen eines Containers verwendet haben, können Sie ihn mit diesem Befehl starten.

Docker-Ausführungsbefehl ist eine Kombination aus create und start, da es einen neuen Container erstellt und sofort startet. Tatsächlich kann der docker run-Befehl sogar ein Image von Docker Hub ziehen, wenn es das erwähnte Image nicht auf Ihrem System findet.

Sehen wir es uns anhand von Beispielen an, damit Ihnen die Dinge klarer werden.

Sehen wir es uns anhand von Beispielen an

Stellen Sie sicher, dass Sie Docker installiert haben, wenn Sie den Beispielen folgen möchten.

Nehmen wir an, Sie laden das Ubuntu-Image mit dem Befehl docker pull ubuntu von Docker Hub herunter.

Sie können alle verfügbaren Docker-Images auf Ihrem System sehen. Ich habe in diesem Beispiel nur Ubuntu (um Verwirrung zu vermeiden):

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

Erstellen Sie nun mit dem docker create command: einen neuen Docker-Container namens container-1

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

Sie können sehen, dass ein neuer Container erstellt wurde. Wenn Sie versuchen, alle laufenden Container anzuzeigen, sehen Sie container-1 nicht, da er zwar erstellt, aber nie gestartet wurde.

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

Wenn Sie alle Container überprüfen, unabhängig davon, ob sie ausgeführt werden oder nicht, sehen Sie, dass container-1 den Status Erstellt hat:

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

Lassen Sie uns nun den docker run-Befehl verwenden zum Erstellen und Ausführen eines Containers namens container-2:

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

Sie können sehen, dass container-2 ausgeführt wird, da sein Status Up:

ist
[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

Stoppen wir diesen laufenden Container:

[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

Da wir nun einen angehaltenen Container haben, können Sie ihn mit dem docker start-Befehl wieder starten :

[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

Aber was passiert mit dem Container-1, der mit dem Befehl docker create erstellt wurde? Sie können diesen Container mit dem Befehl docker start starten und dann mit docker exec etwas Bestimmtes damit ausführen.

Ich hoffe, dieser Artikel hat Ihnen ein besseres Verständnis der Befehle Docker Run, Docker Start und Docker Create vermittelt. Ich empfehle, sich mit dem Container-Lebenszyklus vertraut zu machen, um dieses Thema besser zu verstehen.

Docker-Befehle zum Verwalten des ContainerlebenszyklusLernen Sie das Konzept des Containerlebenszyklus. Lernen Sie auch die Docker-Befehle kennen, um jede Phase des Lebenszyklus der Container zu verwalten. Linux-Handbuch Debdut Chakraborty

Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte unten einen Kommentar.


Docker
  1. So erstellen, listen und löschen Sie Docker-Container unter Linux

  2. Wie führe ich ein Programm in einem Docker-Container aus?

  3. Eine Einführung in Docker

  4. So führen Sie MySQL in einem Docker-Container aus

  5. So führen Sie einen Befehl in einem laufenden Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So erstellen Sie ein Docker-Image aus einem laufenden Container

So erstellen Sie einen Django-Docker-Anwendungscontainer

So führen Sie Docker-Container aus

Erstellen Sie einen einfachen Node.js-Hello-World-Docker-Container von Grund auf neu

Docker-Container im Hintergrund ausführen (getrennter Modus)