您需要了解的最常用的20條Docker命令

您需要了解的最常用的20條Docker命令

Docker 是一個幫助開發人員構建和部署容器化應用程式的平臺。它通過為管理這些應用程式提供輕量級虛擬化環境,幫助解決作業系統相容性難題。

Docker 的主要命令列介面(CLI)為開發人員使用容器提供了強大的工具。從基本命令 docker 開始,CLI 支援近 60 個子命令,其中大部分都接受大量命令列引數,以處理不同的任務。

掌握 Docker CLI

你的 Docker 環境可能是開源的 Docker Engine,也可能是使用者友好的圖形使用者介面 Docker Desktop。在 Docker Engine 環境中,CLI 將是你的主要介面,但如果你安裝了 Docker Desktop,你也可以使用命令列工具。

我們認為,即使是 Docker Desktop 的使用者,一旦熟悉了至少這 20 條基本的 docker 命令,也會發現自己已經開始使用 CLI 了。

你應該知道的 Docker 命令

讓我們深入瞭解一下哪些 Docker 命令是你應該最熟悉的。

  1. docker system
  2. docker context
  3. docker pause 和 unpause
  4. docker rm
  5. docker rmi
  6. docker volume
  7. docker search
  8. docker push
  9. docker pull
  10. docker ps
  11. docker tag
  12. docker rename
  13. docker commit
  14. docker network
  15. docker history
  16. docker update
  17. docker plugin install
  18. docker container
  19. docker logs
  20. docker swarm

1. docker system

docker system  命令有助於檢查和管理 Docker 環境。它支援用於執行特定管理相關任務的命令列引數,包括

  • df 顯示磁碟的使用情況
  • prune 刪除未使用的網路、容器、映像或卷
  • info 顯示系統相關資訊
  • events 實時顯示系統事件日誌

下面是執行 docker system prune 後的初始提示。

docker system prune 輸出

docker system prune 輸出

2. docker context

該命令可幫助您導航和配置不同的上下文。在 Docker 中,上下文包括名稱、傳輸層安全資訊、端點配置和協調器。

一些  docker context 引數:

  • ls 顯示預設上下文的詳細資訊
  • inspect [CONTEXT} 檢查指定的上下文
  • create [CONTEXT] 建立一個新的上下文
  • use [CONTEXT] 在上下文之間切換

下面是  docker context ls 輸出的示例:

docker context ls 輸出

docker context ls 輸出

3. docker pause 和 unpause

docker pause 命令會凍結容器的活動程序。要執行它,必須指定容器的名稱,如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker pause [CONTAINER]
docker pause [CONTAINER]
docker pause [CONTAINER]

下面是暫停容器後的輸出示例。

docker pause 輸出

docker pause 輸出

 docker unause 命令會恢復已暫停的容器程序。與前一條命令一樣,你必須指定容器名稱,如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker unpause [CONTAINER]
docker unpause [CONTAINER]
docker unpause [CONTAINER]

下面是取消暫停容器後的輸出示例。

docker unpause 輸出

docker unpause 輸出

4. docker rm

該命令可移除容器、卷和網路。它允許根據元件的屬性選擇要移除的元件。例如,你可以強制移除正在執行的容器或所有指定的容器:

docker rm [CONTAINER] 移除指定名稱的容器。該命令的輸出截圖如下。

docker rm 輸出

docker rm 輸出

5. docker rmi

使用該命令可以刪除影象。您可以刪除單個影象,也可以同時刪除多個影象。您可以使用短 ID 或長 ID 來描述要刪除的影象。該命令對於保持主機節點的整潔和高效非常重要。

影象刪除命令使用以下結構:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker rmi [IMAGE ID]
docker rmi [IMAGE ID]
docker rmi [IMAGE ID]

下面是其輸出示例。

docker rmi 輸出

docker rmi 輸出

6. docker volume

該命令允許你管理 Docker 中的卷。你可以用它來建立、移除、列出和檢查卷。

docker volume 的一些引數如下:

  • create [OPTIONAL NAME] 建立一個新卷。你可以指定卷名,也可以讓 Docker 隨機生成一個卷名。
  • ls 列出可用的卷
  • inspect [NAME] 顯示卷的詳細資訊。
  • rm [NAME] 從 Docker 中刪除卷。

下面是建立卷後的輸出示例。

docker volume create 輸出

docker volume create 輸出

使用此命令從 Docker Hub 搜尋映象,然後將其作為容器在你的機器上執行。它允許你在不訪問網站的情況下訪問 Docker Hub 登錄檔映象。

該命令的結構如下: Docker search。你可以指定要搜尋的映象名稱,也可以建立一個過濾器。

下面是以下查詢輸出的示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker search --filter is-official=true --filter stars=500 mysql
docker search --filter is-official=true --filter stars=500 mysql
docker search --filter is-official=true --filter stars=500 mysql

docker search 輸出

docker search 輸出

8. docker push

通過 docker push 命令,你可以在 Docker Hub 登錄檔或私有資源庫中共享你的映象。

該命令的結構如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker push [OPTIONS] NAME[:TAG]
docker push [OPTIONS] NAME[:TAG]
docker push [OPTIONS] NAME[:TAG]

[OPTIONS] 允許你設定 -disable-content-trust (禁用內容信任)。

預設情況下,該值為 true,並非必須包含。

NAME[:TAG] 要求使用登錄檔名稱、版本庫和圖片標籤。

下面是一個 docker push 輸出的示例。

docker push 輸出

docker push 輸出

9. docker pull

該命令從私有或公共註冊庫中的儲存庫下載 Docker 映象。

該命令是這樣執行的:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

只要必須建立容器化應用程式,該命令就能讓你使用現有映象,而不是建立新映象。

下面的示例顯示了 docker pull 命令的輸出結果:

docker pull 輸出

docker pull 輸出

10. docker ps

預設情況下,該命令會顯示所有正在執行的容器列表。不過,你可以新增一個標記,根據磁碟使用大小、連結容器和標籤等屬性列出容器。

該命令的結構如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker ps [OPTIONS]
docker ps [OPTIONS]
docker ps [OPTIONS]

其引數包括:

  • -a 顯示正在執行和已退出的容器列表
  • -s 顯示每個容器的磁碟大小和虛擬大小

您可以像這樣將兩者結合使用:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker ps -as
docker ps -as
docker ps -as

下面是一個 docker ps 命令輸出的示例。

 docker ps 命令的部分輸出

 docker ps 命令的部分輸出

11. docker tag

使用這個標籤可以為你的映象新增後設資料,比如版本。標籤通常是在構建映象時建立的,但  docker tag 命令允許你稍後新增標籤,本質上是為目標映象建立一個別名。

該命令的結構如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

在下面的示例中,我們列出了名稱為 “redis” 的圖片。用版本號(”2.0″)標記圖片後,新的別名和最初標記的圖片就會出現在列表中。

docker tag 輸出

docker tag 輸出

12. docker rename

使用此命令重新命名容器。如果您有多個容器,並希望根據用途對它們進行區分,那麼這條命令就非常有用。

該命令的結構如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker rename [OLD_NAME] [NEW_NAME]
docker rename [OLD_NAME] [NEW_NAME]
docker rename [OLD_NAME] [NEW_NAME]

下面是執行  docker rename 命令前後的輸出示例。

docker rename 輸出

docker rename 輸出

13. docker commit

此命令允許您在更改容器檔案後建立新映像。這一點很重要,因為它可以讓您使用互動式 shell 除錯容器。

該命令的結構如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker commit [CONTAINER_ID] [name-of-new-image]
docker commit [CONTAINER_ID] [name-of-new-image]
docker commit [CONTAINER_ID] [name-of-new-image]

下面是一個示例和  docker commit 的輸出結果。

docker commit 輸出

docker commit 輸出

14. docker network

這是一個網路管理命令,可讓您通過連線服務和容器建立功能強大的應用程式。

該命令的結構如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker network [OPTIONS]
docker network [OPTIONS]
docker network [OPTIONS]

其引數包括:

  • connect 用於將容器連線到網路
  • create 用於構建新網路
  • disconnect 用於將執行中的容器從網路中斷開
  • rm 用於刪除單個或多個網路

以下是  docker network create 的輸出結果。

docker network create 輸出

docker network create 輸出

15. docker history

該命令提供指定影象的歷史記錄,幫助您瞭解影象的建立過程並顯示影象大小。

該命令的結構如下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker history [IMAGE]
docker history [IMAGE]
docker history [IMAGE]

下面,我們看到了與影象 redis:latest 相關的歷史記錄。

docker history 輸出

docker history 輸出

16. docker update

使用該命令可以更新容器的配置。它有助於防止容器消耗過多的 Docker 主機資源。該命令的格式為:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
docker update [OPTIONS] [CONTAINER]
docker update [OPTIONS] [CONTAINER]
docker update [OPTIONS] [CONTAINER]

其部分選項包括:

  • --restart 更新容器重啟策略
  • --memory 設定容器的記憶體限制
  • --cpus 設定分配的CPU數量

下面是一個 docker update 命令的輸出示例。

docker update 輸出

docker update 輸出

17. docker plugin install

通過該命令可以管理外掛。它非常重要,因為它可以在不改變 Docker 主機配置的情況下新增新功能。

docker plugin 引數包括:

  • create 用於建立新外掛
  • enable 用於啟用已安裝的外掛
  • install 用於安裝新外掛
  • rm 用於刪除單個或多個外掛
  • ls 用於顯示外掛列表

下面,我們使用 docker plugin install 將一個外掛新增到我們的環境中。然後,我們使用  docker plugin ls  來顯示它的狀態。

docker plugin ls 輸出

docker plugin ls 輸出

18. docker container

該命令允許你管理容器。你可以用它來執行建立、殺死和刪除容器等操作。

docker container 選項包括

  • create 用於建立容器
  • commit 用於在對容器進行更改後建立新映像
  • exec 用於在執行中的容器內執行命令
  • kill 用於停止正在執行的容器
  • ls 用於顯示 Docker 主機內的容器列表
  • restart 用於重新啟動容器
  • run 用於從映像建立容器並執行它
  • rm 用於從 Docker 主機中移除容器

下面是一個  docker container 命令輸出的示例。

docker container restart 輸出

docker container restart 輸出

19. docker logs

該命令從容器中檢索日誌。它能讓人深入瞭解容器的執行情況,這在除錯時非常重要。

下面是一個 docker logs 命令輸出的示例。

docker logs 輸出

docker logs 輸出

20. docker swarm

該命令有助於管理 Docker 星群–一組執行 Docker 並配置為在叢集中協同工作的機器(虛擬機器或物理機)。使用該命令可以輕鬆建立一個群集,並享受其帶來的好處。

下面是一些 docker swarm 選項:

  • init 用於啟動一個群集
  • join 用於加入一個群集
  • leave 用於退出群集
  • update 用於更新群集

下面是一個例子和一個 docker swarm init 命令的輸出。

docker swarm init 輸出

docker swarm init 輸出

小結

Docker 是構建和管理容器化應用程式的有效工具。其 CLI 命令簡單易懂,即使是複雜的應用程式,建立和操作起來也更加容易。

掌握以上 20 條命令可以加快容器化應用程式的開發速度。

評論留言