Docker入門系列之五:15個 Docker 命令
在這篇文章中,我們將學習15個Dockers CLI命令。如果你還不瞭解Docker,請檢視這個系列的其他部分進行學習,Docker概念,生態系統,Dockerfile,Docker映象。
Docker 命令約有十億個(給或接受十億個)。Docker 文件範圍很廣泛,但當您剛入門時,文件會非常龐大讓你不知所措。在這篇文章中,我將重點介紹執行Docker的關鍵命令。
圖:水果主題
之前的文章我們都把文章的主題隱喻成食物,這裡讓我們使用水果主題。蔬菜在關於減肥的文章中提供了營養。現在,美味的水果將為我們提供營養,因為我們學習的是關鍵 Docker 命令。
概述
回想一下,Docker 映象是由 Dockerfile +任何必要的依賴項組成的,還要記得 Docker 容器是一個 Docker 映象。若要使用 Docker 命令,首先需要知道您處理的是映象還是容器。
- Docker 映象要麼存在,要麼不存在;
- Docker 容器要麼存在,要麼不存在;
- 存在的 Docker 容器要麼正在執行,要麼未執行。
當您知道正在處理什麼,就可以找到適合該工作的命令。
共同點
以下是關於Docker命令需要了解的一些資訊:
- Docker CLI 管理命令從Docker開始,然後是空間,然後是管理類別,然後是空間,然後是命令。例如,
dockerdocker container stop
停止一個容器。 - 引用特定容器或映象的命令需要該容器或映象的名稱或 ID。
例如,docker container run my_app 是生成和執行名為 “my_app”的命令。在整個示例中,我將使用my_container 這個名稱來表示泛型容器,my_image
my_tag
等等也一樣。
如果適用,我將單獨提供命令,然後使用公共標誌。前面有兩個破折號的標記是該標誌的全名。具有一個破折號的標記是完整標誌名稱的快捷方式。例如,
-p
是--port
縮寫的標誌。
圖:標誌提供命令選項
目標是將這些命令和標誌留在您的記憶中,並作為本指南的參考。本指南適用於Linux和Docker Engine 18.09.1版和API 1.39版。
首先,我們將檢視容器的命令,然後再檢視映象的命令。下一篇文章將介紹卷。下面是15個命令的列表 – 加上3個附加命令!
容器
使用docker container my_command
create
— 從映象建立容器
start
— 啟動現有容器
run
—建立新容器並啟動它
ls
— 列出正在執行的容器
inspect
— 檢視有關容器的大量資訊
logs
— 列印日誌
stop
— 優雅地停止執行容器
kill
—突然停止容器中的主程序
rm
—刪除已停止的容器
映象
使用docker image my_command
build
— 生成映象
push
— 將映象推送到遠端登錄檔
ls
— 列出映象
history
— 請參閱中間映象資訊
inspect
— 檢視大量有關映象的資訊,包括圖層
rm
— 刪除映象
其他
docker version
—列出有關 Docker 客戶端和伺服器版本的資訊
docker login
—登入到Docker登錄檔
docker system prune
—刪除所有未使用的容器、未使用的網路和懸空映象
容器
容器開始
在日常生活中,術語create、start和run都有相似的語義。但每個命令都是一個單獨的 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
,然後通過終端外殼與容器進行互動。
-p
是--port
的縮寫。埠是與外部世界的介面。1000:8000
將Docker埠8000對映到計算機上的埠1000。如果你有一個應用程式可以將某些內容輸出到瀏覽器中,那麼你可以將瀏覽器導航到本地主機localhost:1000
並看到它。
--rm
當容器停止執行時,自動刪除該容器。
讓我們看一些更多的例子。run
docker container run -it my_image my_command
sh
是可以在執行時指定的命令。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 秒的預設值,以完成任何程序。
或者,如果您不耐煩:
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 run my_container
結合。然後,你的應用將執行。
然後,使用docker stop my_container
停止容器;最終使用docker rm my_container
刪除容器。
現在,讓我們來看看製造稱為映象的模具的神奇容器。
映象
下面是用於處理 Docker 映象的七個命令。
開發映象
docker image build -t my_repo/my_image:my_tag .
-從位於指定路徑或URL的Dockerfile構建名為*my_image*的Docker映象。
-t
是標記的簡短。告訴 Docker 使用提供的標記來標記映象。在*my_tag*這種情況下。
.
命令末尾的 (期間) 告訴 Docker 在當前工作目錄中根據 Dockerfile 生成映象。
圖:構建它
構建映象後,您需要把它推到遠端登錄檔,以便使它被共享並根據需要被拉取。假設您要使用Docker Hub,請轉到瀏覽器中並建立一個帳戶。它是免費的。
下一個命令不是映象命令,但在這裡檢視很有用,所以我要提一下。
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 version
-列出有關 Docker 客戶端和伺服器版本的資訊。
docker login
-登入 Docker 登錄檔。提示時輸入使用者名稱和密碼。
docker system prune
出現在下一篇文章中。Twitter 和Reddit 上的讀者認為,加入這個列表是件好事。
docker system prune
-刪除所有未使用的容器、未使用的網路和懸空映象。
docker system prune -a --volumes
-a
是--all
的縮寫。刪除未使用的映象,而不僅僅是懸空的映象。
--volumes
刪除未使用的卷。我們將在下一篇文章中討論更多有關卷的文章。
管理命令
在 CLI 1.13 Docker 中引入了按邏輯分組並一致命名的管理命令名稱。舊命令仍然有效,但新命令使使用 Docker 更容易。本文的原始版本列出了舊名稱。我更新了文章,根據讀者建議使用管理命令名稱。請注意,此更改僅引入兩個命令名稱更改 - 在大多數情況下,它只是意味向命令新增container
或image
。這裡是命令的對映。
包
如果您剛剛開始使用 Docker,以下是三個最重要的命令:
docker container run my_image
-建立新容器並啟動它。你可能想要一些標誌在這裡。
docker image build -t my_repo/my_image:my_tag .
-生成映象。
docker image push my_repo/my_image:my_tag
-將映象推送到遠端登錄檔。
下面是基本 Docker 命令的較大列表:
容器
使用docker container my_command
create
-從映象建立容器
start
-啟動現有容器
run
-建立新容器並啟動它
ls
-列出正在執行的容器
inspect
-檢視有關容器的大量資訊
logs
-列印日誌
stop
-優雅地停止執行容器
kill
-突然停止容器中的主要過程
rm
-刪除已停止的容器
映象
使用docker image my_command
build
-生成映象。
push
-將映象推送到遠端登錄檔
ls
-列出映象
history
-請參閱中間映象資訊
inspect
-檢視大量有關映象的資訊,包括圖層
rm
-刪除映象
其他
docker version
-列出有關 Docker 客戶端和伺服器版本的資訊
docker login
-登入到 Docker 登錄檔
docker system prune
-刪除所有未使用的容器、未使用的網路和懸空映象。
若要在使用 Docker 時檢視 CLI 引用,只需在命令列中輸入命令。
現在,您就可以使用 Docker 構建東西了!
結尾
如果您錯過了本系列的早期文章,請檢視它們。第一個是:《Docker-第1部分:什麼是Docker?》
希望這些文章對您有幫助。
原文作者:Jeff Hale
原文地址:https://towardsdatascience.com/learn-enough-docker-to-be-useful-1c40ea269fa8
翻譯:豬齒魚技術團隊
本文由豬齒魚技術團隊原創,轉載請註明出處:豬齒魚官網