在這篇文章中,我們將學習15個Dockers CLI命令。如果你還不瞭解Docker,請檢視這個系列的其他部分進行學習,Docker概念生態系統DockerfileDocker映象

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_tagmy_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映象,shbash更好,因為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 更容易。本文的原始版本列出了舊名稱。我更新了文章,根據讀者建議使用管理命令名稱。請注意,此更改僅引入兩個命令名稱更改 - 在大多數情況下,它只是意味向命令新增containerimage。這裡是命令的對映。

如果您剛剛開始使用 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

翻譯:豬齒魚技術團隊


本文由豬齒魚技術團隊原創,轉載請註明出處:豬齒魚官網