溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker命令行入門大全:這18條,你不得不知

發(fā)布時(shí)間:2020-07-19 21:05:13 來源:網(wǎng)絡(luò) 閱讀:390 作者:RancherLabs 欄目:云計(jì)算

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這一命令可以停止容器。

  • 引用特定容器或鏡像的命令需要該容器或鏡像的名稱或ID。
    ?

舉個(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命令行入門大全:這18條,你不得不知
?

容器命令

?

使用 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)程

  • rm — 刪除已經(jīng)停止的容器
    ?

    鏡像命令

    ?

使用 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鏡像倉庫

  • docker system prune — 刪除所有未使用的容器、網(wǎng)絡(luò)以及無名稱的鏡像(虛懸鏡像)
    ?

    容器命令詳解

    ?

啟動(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í)將終端用于其他命令。
?
Docker命令行入門大全:這18條,你不得不知
?
檢查容器狀態(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命令行入門大全:這18條,你不得不知
?
檢查鏡像

?

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)建東西了!趕緊上手操作吧!

向AI問一下細(xì)節(jié)

免責(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)容。

AI