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