docker中run、start和create命令的區(qū)別
對于 Docker 初學(xué)者來說,docker start、docker run 和 docker create 等術(shù)語可能會令人困惑。本文通過示例解釋了其中的區(qū)別。
如果您不熟悉 Docker 并通過學(xué)習各種教程來學(xué)習它,則可能會遇到諸如啟動 docker 容器、運行 docker 容器或創(chuàng)建 docker 容器之類的術(shù)語。
這些術(shù)語足以使 Docker 初學(xué)者感到困惑,因為所有三個 docker 命令看起來都很相似。
事實上,特別難以區(qū)分 docker run 和 docker start。
運行容器與啟動容器是一樣的嗎?并不是。
讓我向你解釋一下。
docker run、docker start和 docker create之間的區(qū)別
以下是這些命令的用途:
docker create命令從 Docker 映像創(chuàng)建一個全新的容器。但是,它不會立即運行它。
docker start命令將啟動任何已停止的容器。如果使用 docker create命令創(chuàng)建容器,則可以使用此命令啟動它。
docker run 命令是創(chuàng)建和啟動的組合,因為它創(chuàng)建了一個新容器并立即啟動它。實際上,如果docker run命令在您的系統(tǒng)上找不到上述映像,它甚至可以從 Docker Hub 中提取映像。
讓我們用例子來看看它,這樣你就能更清楚地知道事情。
讓我們通過示例來查看它
如果要遵循示例,請確保已安裝 Docker。
假設(shè)您使用 docker pull ubuntu 命令從 Docker Hub 下載 Ubuntu 映像。
您可以查看系統(tǒng)上所有可用的 Docker 映像。在這個例子中,我只有ubuntu(為了避免混淆):
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 775349758637 5 weeks ago 64.2MB
現(xiàn)在,使用 docker create 命令創(chuàng)建一個名為 container-1 的新docker容器:
# docker create --name container-1 ubuntu 6a81a998658e9e0d3b612ee65b07d76a45d79812d860baf3f1cbc60fe997ebec
可以看到它已創(chuàng)建一個新容器。如果嘗試查看所有正在運行的容器,則不會看到 container-1,因為盡管它已創(chuàng)建,但從未啟動過。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
如果檢查所有容器,無論它們是否正在運行,都會看到 container-1 具有"已創(chuàng)建"狀態(tài):
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a81a998658e ubuntu "/bin/bash" 18 seconds ago Created container-1
現(xiàn)在,讓我們使用docker run 命令來創(chuàng)建并運行一個名為 container-2 的容器:
# docker run -it -d --name container-2 ubuntu bash 6391c1a0cac6c9f5fc6f5cfb05d75a22c208e63223c3b231035a40a4b134c521
您可以看到容器-2 正在運行,因為它的狀態(tài)為"已啟動":
# 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
現(xiàn)在我們有一個停止的容器,您可以使用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 命令創(chuàng)建的 container-1 會發(fā)生什么情況呢?您可以使用 docker start 命令啟動此容器,然后使用docker exec運行特定的東西。
我希望本文能讓您更好地了解 docker run、docker start和 docker create命令。我建議您了解容器生命周期,以便進一步了解此主題。
到此這篇關(guān)于docker中run、start和create命令的區(qū)別的文章就介紹到這了,更多相關(guān)docker run、start和create內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)
當我們創(chuàng)建容器之后,不可避免會遇到修改配置文件的操作,下面這篇文章主要給大家介紹了關(guān)于docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
Flask應(yīng)用封裝成Docker服務(wù)的完整操作指南
本文詳細介紹了如何使用Docker將Flask應(yīng)用容器化,包括實現(xiàn)原理、詳細操作步驟、進階配置、常見問題及解決方案和生產(chǎn)環(huán)境注意事項,需要的朋友可以參考下2025-04-04
在docker中執(zhí)行l(wèi)inux shell命令的操作
這篇文章主要介紹了在docker中執(zhí)行l(wèi)inux shell命令的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

