您好,登錄后才能下訂單哦!
Docker有成千上百萬的命令行。因此Docker文檔內(nèi)容十分豐富,同時(shí)又讓剛?cè)腴T的新手感到不知所措。在本文中,我將重點(diǎn)介紹運(yùn)行Docker的關(guān)鍵命令。
?
?
Docker鏡像是由Dockerfile和一些必要的依賴項(xiàng)組成的,Docker容器是動(dòng)態(tài)的Docker鏡像。要使用Docker命令,首先需要知道您是在處理鏡像還是容器。一旦你知道你所處理的是鏡像還是容器之后,你才可以找到正確的命令。
?
?
你需要知道一些關(guān)于Docker命令的規(guī)律:
?
Docker CLI管理命令以docker開頭,然后是空格,接著是管理類別,然后是空格最后是命令。例如,docker container stop這一命令可以停止容器。
舉個(gè)例子,docker container run my_app 是用于構(gòu)建和運(yùn)行名為my_app的容器的命令。在本文示例中,我將使用名稱my_container來引用通用容器。同理,my_image、my_tag也是如此。
?
我將單獨(dú)提供命令和通用標(biāo)志。前面有兩個(gè)破折號(hào)的標(biāo)志是標(biāo)志的全名。帶有一個(gè)破折號(hào)的標(biāo)志是完整標(biāo)志名稱的縮寫。例如,-p是--port標(biāo)志的縮寫。
?
本文的目標(biāo)是讓您牢牢記住這些命令和標(biāo)記,并希望您可以在創(chuàng)建容器或構(gòu)建鏡像的時(shí)候可以將本指南作為參考。本指南適用于Linux和Docker Engine版本18.09.1以及API版本1.39。
?
我們先了解容器命令然后再看鏡像命令。
?
?
?
使用 docker container my_command
?
create — 從鏡像中創(chuàng)建一個(gè)容器
start — 啟動(dòng)一個(gè)已有的容器
run — 創(chuàng)建一個(gè)新的容器并且啟動(dòng)它
ls — 列出正在運(yùn)行的容器
inspect — 查看關(guān)于容器的信息
logs — 打印日志
stop — 優(yōu)雅停止正在運(yùn)行的容器
kill — 立即停止容器中的主要進(jìn)程
?
使用 docker image my_command
?
build — 構(gòu)建一個(gè)鏡像
push — 將鏡像推送到遠(yuǎn)程鏡像倉庫中
ls — 列出鏡像
history — 查看中間鏡像信息
inspect — 查看關(guān)于鏡像的信息,包括層
rm — 刪除鏡像
?
?
docker version — 列出關(guān)于Docker客戶端以及服務(wù)器版本的信息
docker login — 登錄到Docker鏡像倉庫
?
啟動(dòng)容器
?
術(shù)語“創(chuàng)建”,“開始”和“運(yùn)行”在日常生活中都具有相似的語義,但每個(gè)都是一個(gè)獨(dú)立的Docker命令,用于創(chuàng)建并/或啟動(dòng)容器。讓我們先看看創(chuàng)建容器的命令。
?
docker container create my_repo/my_image:my_tag — 從一個(gè)鏡像中創(chuàng)建容器
?
我將在下文中把my_repo/my_image:my_tag縮寫為 my_image。
?
你可以通過傳遞許多標(biāo)志來create。
?
docker container create -a STDIN my_image
?
-a是—attach的縮寫,指將容器連接到STDIN,STDOUT或STDERR。
?
既然我們已經(jīng)創(chuàng)建了一個(gè)容器,那么讓我們來啟動(dòng)它。
?
docker container start my_container — 啟動(dòng)一個(gè)已有的容器
?
請(qǐng)注意,容器可以通過容器的ID或容器的名稱來引用。
?
docker container start my_container
?
既然你知道如何創(chuàng)建和啟動(dòng)一個(gè)容器,讓我們來看看最常見的Docker命令。它將create和start結(jié)合到一個(gè)命令中:run。
?
docker container run my_image — 創(chuàng)建一個(gè)新容器并且啟動(dòng)它。這一命令同樣也有許多選項(xiàng)。讓我們看看其中幾個(gè)。
?
docker container run -i -t -p 1000:8000 --rm my_image
?
-i是—interactive的縮寫,即使未連接,也要保持STDIN打開;-t是—tty的縮寫,它會(huì)分配一個(gè)偽終端,將終端與容器的STDIN和STDOUT連接起來。
?
你需要指定-i和-t 通過終端shell與容器交互。
?
-p是 –port的縮寫。端口是與外部世界的接口。1000:8000將Docker端口8000映射到計(jì)算機(jī)上的端口1000。如果你有一個(gè)app輸出了一些內(nèi)容到瀏覽器,你可以將瀏覽器導(dǎo)航到localhost:1000并且查看它。
?
--rm自動(dòng)刪除停止運(yùn)行的容器。
?
讓我們?cè)賮砜纯磖un的幾個(gè)例子。
?
docker container run -it my_image my_command
?
sh是你可在運(yùn)行時(shí)指定的命令,它將在容器內(nèi)部啟動(dòng)shell會(huì)話,你可以通過終端與其交互。對(duì)于Alpine鏡像,sh優(yōu)于bash,因?yàn)锳lpine鏡像不隨bash一起安裝。鍵入exit以結(jié)束交互式shell會(huì)話。
?
請(qǐng)注意,我們將-i和-t結(jié)合為-it。
?
docker container run -d my_image
?
-d是—detach的縮寫,指在后臺(tái)運(yùn)行容器,允許您在容器運(yùn)行時(shí)將終端用于其他命令。
?
?
檢查容器狀態(tài)
?
如果你有許多運(yùn)行中的Docker容器并且想要找到與哪一個(gè)互動(dòng),那么你需要列出它們。
?
docker container ls — 列出運(yùn)行中的容器,同時(shí)提供關(guān)于容器有用的信息。
?
docker container ls -a -s
?
-a是--all的縮寫,列出所有容器(不僅僅是正在運(yùn)行中的容器)
?
-s是—size的縮寫,列出每個(gè)容器的大小。
?
docker container inspect my_container — 查看有關(guān)容器的信息
?
docker container logs my_container — 列出容器日志
?
終止容器
?
有時(shí)你需要停止一個(gè)正在運(yùn)行中的容器,你需要用到以下命令:
?
docker container stop my_container — 優(yōu)雅地停止一個(gè)或多個(gè)正在運(yùn)行的容器。在容器關(guān)閉之前提供默認(rèn)10秒以完成任何進(jìn)程。
?
如果你覺得10秒太長(zhǎng)的話,可以使用以下命令:
?
docker container kill my_container — 立即停止一個(gè)或多個(gè)正在運(yùn)行的容器。這就像拔掉電視上的插頭一樣。但是在大多數(shù)情況下,建議使用stop命令。
?
docker container kill $(docker ps -q)— 終止所有運(yùn)行中的容器
?
你需要?jiǎng)h除容器可以使用以下命令:
?
docker container rm my_container — 刪除一個(gè)或多個(gè)容器
?
docker container rm $(docker ps -a -q) — 刪除所有不在運(yùn)行中的容器
?
以上就是Docker容器的關(guān)鍵命令。接下來,我們來看看關(guān)于鏡像的命令。
?
?
以下是Docker鏡像使用的7條命令
?
構(gòu)建鏡像
?
docker image build -t my_repo/my_image:my_tag . 在指定路徑或url的Dockerfile中構(gòu)建一個(gè)名為my_image的Docker鏡像。
?
-t是tag的縮寫,是告訴docker用提供的標(biāo)簽來標(biāo)記鏡像,在本例中,是my_tag。
?
在命令末尾的句號(hào)(.)是告訴Docker根據(jù)當(dāng)前工作目錄中的Dockerfile構(gòu)建鏡像。
?
當(dāng)你構(gòu)建好鏡像之后,你想要推送它到遠(yuǎn)程倉庫中以便它可以共享并且在有需要的時(shí)候被拉取。那么下一個(gè)命令十分有用,盡管并非是鏡像命令。
?
docker login — 登錄到Docker鏡像倉庫,根據(jù)提示鍵入你的用戶名和密碼
?
docker image push my_repo/my_image:my_tag — 推送一個(gè)鏡像到倉庫。
?
你擁有了這些鏡像之后,你可能想要檢查他們。
?
?
檢查鏡像
?
docker image ls — 列出你的鏡像以及每個(gè)鏡像的大小
?
docker image history my_image — 顯示鏡像的中間鏡像,包括大小及其創(chuàng)建方式
?
docker image inspect my_image — 顯示關(guān)于鏡像的細(xì)節(jié),包括組成鏡像的層
?
有時(shí)候你還需要清理你的鏡像。
?
清理鏡像
?
docker image rm my_image — 刪除指定鏡像。如果鏡像被保存在鏡像倉庫中,那么該鏡像在那依舊可用。
?
docker image rm $(docker images -a -q) — 刪除所有鏡像。必須小心使用這一命令。請(qǐng)注意已經(jīng)被推送到遠(yuǎn)程倉庫的鏡像依然能夠保存,這是鏡像倉庫的一個(gè)優(yōu)勢(shì)。
?
以上就是大部分與Docker鏡像相關(guān)的重要命令。
?
要在使用Docker時(shí)查看CLI引用,只需在命令行中輸入命令docker即可。Docker文檔請(qǐng)參閱:
https://docs.docker.com/engine/reference/commandline/cli/
?
現(xiàn)在你已經(jīng)掌握了運(yùn)行Docker的關(guān)鍵命令,可以用Docker構(gòu)建東西了!趕緊上手操作吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。