docker中create與run的區別是什么

docker中,create命令與run命令都可以創建一個新的容器,區別就是create命令創建一個新的容器但是不啟動它,而run命令創建一個新的容器會運行一個命令。

docker中create與run的區別是什么

本教程操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦

docker中create與run的區別是什么

以下是這些命令的用途:

  • docker create命令從 Docker 映像創建一個全新的容器。但是,它不會立即運行它。

  • docker start命令將啟動任何已停止的容器。如果使用 docker create命令創建容器,則可以使用此命令啟動它。

  • docker run 命令是創建和啟動的組合,因為它創建了一個新容器并立即啟動它。實際上,如果docker run命令在您的系統上找不到上述映像,它甚至可以從 Docker Hub 中提取映像。

讓我們用例子來看看它,這樣你就能更清楚地知道事情。

讓我們通過示例來查看它

如果要遵循示例,請確保已安裝 Docker。

假設您使用 docker pull ubuntu 命令從 Docker Hub 下載 Ubuntu 映像。

您可以查看系統上所有可用的 Docker 映像。在這個例子中,我只有ubuntu(為了避免混淆):

#?docker?images REPOSITORY??????????TAG?????????????????IMAGE?ID????????????CREATED?????????????SIZE ubuntu??????????????latest??????????????775349758637????????5?weeks?ago?????????64.2MB

現在,使用 docker create 命令創建一個名為 container-1 的新docker容器:

#?docker?create?--name?container-1?ubuntu 6a81a998658e9e0d3b612ee65b07d76a45d79812d860baf3f1cbc60fe997ebec

可以看到它已創建一個新容器。如果嘗試查看所有正在運行的容器,則不會看到 container-1,因為盡管它已創建,但從未啟動過。

#?docker?ps CONTAINER?ID????????IMAGE???????????????COMMAND?????????????CREATED?????????????STATUS??????????????PORTS???????????????NAMES

如果檢查所有容器,無論它們是否正在運行,都會看到 container-1 具有”已創建”狀態:

#?docker?ps?-a CONTAINER?ID????????IMAGE???????????????COMMAND?????????????CREATED?????????????STATUS??????????????PORTS???????????????NAMES 6a81a998658e????????ubuntu??????????????"/bin/bash"?????????18?seconds?ago??????Created?????????????????????????????????container-1

現在,讓我們使用docker run 命令來創建并運行一個名為 container-2 的容器:

#?docker?run?-it?-d?--name?container-2?ubuntu?bash 6391c1a0cac6c9f5fc6f5cfb05d75a22c208e63223c3b231035a40a4b134c521

您可以看到容器-2 正在運行,因為它的狀態為”已啟動”:

#?docker?ps CONTAINER?ID????????IMAGE???????????????COMMAND?????????????CREATED??????????????STATUS??????????????PORTS???????????????NAMES 6391c1a0cac6????????ubuntu??????????????"bash"??????????????About?a?minute?ago???Up?About?a?minute???????????????????????container-2

讓我們停止這個正在運行的容器:

#?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

現在我們有一個停止的容器,您可以使用docker start 命令再次啟動它:

#?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

但是,使用 docker create 命令創建的 container-1 會發生什么情況呢?您可以使用 docker start 命令啟動此容器,然后使用docker exec運行特定的東西。

推薦學習:《docker視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享