docker中run、start和create命令的區(qū)別
對于 Docker 初學(xué)者來說,docker start、docker run 和 docker create 等術(shù)語可能會(huì)令人困惑。本文通過示例解釋了其中的區(qū)別。
如果您不熟悉 Docker 并通過學(xué)習(xí)各種教程來學(xué)習(xí)它,則可能會(huì)遇到諸如啟動(dòng) docker 容器、運(yùn)行 docker 容器或創(chuàng)建 docker 容器之類的術(shù)語。
這些術(shù)語足以使 Docker 初學(xué)者感到困惑,因?yàn)樗腥齻€(gè) docker 命令看起來都很相似。
事實(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 中提取映像。
讓我們用例子來看看它,這樣你就能更清楚地知道事情。
讓我們通過示例來查看它
如果要遵循示例,請確保已安裝 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)過。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
如果檢查所有容器,無論它們是否正在運(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 命令來創(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Docker如何實(shí)現(xiàn)MySQL主從復(fù)制詳解
這篇文章主要給大家介紹了關(guān)于基于Docker如何實(shí)現(xiàn)MySQL主從復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10解決docker使用GDB,無法進(jìn)入斷點(diǎn)的問題
這篇文章主要介紹了解決docker使用GDB,無法進(jìn)入斷點(diǎn)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11詳解Docker鏡像提交命令commit的工作原理和使用方法
這篇文章主要介紹了詳解Docker鏡像提交命令commit的工作原理和使用方法,可以依據(jù)這個(gè)容器創(chuàng)建本地鏡像,并可把這個(gè)鏡像推送到Docker hub中,以便在網(wǎng)絡(luò)上下載使用,感興趣的可以了解一下2018-11-11docker maven plugin快速部署微服務(wù)的詳細(xì)流程
本文給大家介紹docker?maven?plugin微服務(wù)快速部署方法,主要將Dockerfile寫在pom中方便項(xiàng)目管理,將微服務(wù)的 打包、上傳、鏡像創(chuàng)建操作整合到一條命令中執(zhí)行,感興趣的朋友跟隨小編一起看看吧2022-04-04spring-boot構(gòu)建docker鏡像上傳倉庫的示例教程
這篇文章主要介紹了spring-boot構(gòu)建docker鏡像上傳倉庫,受限創(chuàng)建一個(gè)簡單spring-boot-web項(xiàng)目,查看鏡像上傳倉庫這時(shí)候有兩種解決方案,對docker鏡像上傳倉庫相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2022-12-12