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

