In Docker können sowohl der Befehl „create“ als auch der Befehl „run“ einen neuen Container erstellen. Der Unterschied besteht darin, dass der Befehl „create“ einen neuen Container erstellt, ihn aber nicht startet, während der Befehl „run“ einen neuen Container erstellt und einen Befehl ausführt.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-1.13.1-Version, Dell G3-Computer
Was ist der Unterschied zwischen Erstellen und Ausführen in Docker?
Die folgenden sind die Verwendungsmöglichkeiten dieser Befehle:
Der Befehl „docker create“ erstellt einen brandneuen Container aus einem Docker-Image. Es wird jedoch nicht sofort ausgeführt.
Der Docker-Startbefehl startet alle gestoppten Container. Wenn Sie einen Container mit dem Befehl docker create erstellt haben, können Sie ihn mit diesem Befehl starten.
Der Docker-Run-Befehl ist eine Kombination aus create und start, da er einen neuen Container erstellt und ihn sofort startet. Tatsächlich kann der Befehl „docker run“ das Image sogar vom Docker Hub abrufen, wenn er das obige Image auf Ihrem System nicht finden kann.
Sehen wir es uns anhand von Beispielen an, damit Sie die Dinge klarer wissen.
Sehen wir uns das anhand eines Beispiels an.
Wenn Sie dem Beispiel folgen möchten, stellen Sie sicher, dass Sie Docker installiert haben.
Angenommen, Sie verwenden den Befehl docker pull ubuntu, um das Ubuntu-Image vom Docker Hub herunterzuladen.
Sie können alle verfügbaren Docker-Images auf Ihrem System anzeigen. In diesem Beispiel habe ich nur Ubuntu (um Verwirrung zu vermeiden):
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 775349758637 5 weeks ago 64.2MB
Erstellen Sie nun einen neuen Docker-Container mit dem Namen „container-1“ mit dem Docker-Create-Befehl:
# docker create --name container-1 ubuntu 6a81a998658e9e0d3b612ee65b07d76a45d79812d860baf3f1cbc60fe997ebec
Sie können sehen, dass ein neuer Container erstellt wurde. Wenn Sie versuchen, alle laufenden Container anzuzeigen, wird Container-1 nicht angezeigt, da er zwar erstellt, aber nie gestartet wurde.
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Wenn Sie alle Container überprüfen, ob sie laufen oder nicht, werden Sie sehen, dass Container-1 den Status „Erstellt“ hat:
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a81a998658e ubuntu "/bin/bash" 18 seconds ago Created container-1
Nun verwenden wir den Docker-Run-Befehl, um einen Container namens Container- zu erstellen und auszuführen. 2:
# docker run -it -d --name container-2 ubuntu bash 6391c1a0cac6c9f5fc6f5cfb05d75a22c208e63223c3b231035a40a4b134c521
Sie können sehen, dass Container-2 ausgeführt wird, da sein Status „Gestartet“ ist:
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" About a minute ago Up About a minute container-2
Stoppen wir diesen laufenden Container:
# docker stop container-2 container-2 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" 2 minutes ago Exited (0) 28 seconds ago container-2 6a81a998658e ubuntu "/bin/bash" 3 minutes ago Created container-1
Jetzt haben wir einen gestoppten Container, den Sie mit dem Docker-Startbefehl erneut starten können :
# docker start container-2 container-2 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" 2 minutes ago Up 2 seconds container-2
Aber was passiert mit Container-1, der mit dem Docker-Create-Befehl erstellt wurde? Sie können diesen Container mit dem Docker-Startbefehl starten und dann Docker Exec verwenden, um bestimmte Dinge auszuführen.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Erstellen und Ausführen im Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!