首頁  >  文章  >  運維  >  docker中create與run的差別是什麼

docker中create與run的差別是什麼

WBOY
WBOY原創
2022-01-10 10:26:266510瀏覽

在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影片教學

以上是docker中create與run的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn