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 命令是你應該最熟悉的。
- docker system
- docker context
- docker pause 和 unpause
- docker rm
- docker rmi
- docker volume
- docker search
- docker push
- docker pull
- docker ps
- docker tag
- docker rename
- docker commit
- docker network
- docker history
- docker update
- docker plugin install
- docker container
- docker logs
- docker swarm
1. docker system
docker system
命令有助於檢查和管理 Docker 環境。它支援用於執行特定管理相關任務的命令列引數,包括
df
顯示磁碟的使用情況prune
刪除未使用的網路、容器、映像或卷info
顯示系統相關資訊events
實時顯示系統事件日誌
下面是執行 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
輸出
3. docker pause 和 unpause
docker pause
命令會凍結容器的活動程序。要執行它,必須指定容器的名稱,如下所示:
docker pause [CONTAINER]
下面是暫停容器後的輸出示例。
docker pause
輸出
docker unause
命令會恢復已暫停的容器程序。與前一條命令一樣,你必須指定容器名稱,如下所示:
docker unpause [CONTAINER]
下面是取消暫停容器後的輸出示例。
docker unpause
輸出
4. docker rm
該命令可移除容器、卷和網路。它允許根據元件的屬性選擇要移除的元件。例如,你可以強制移除正在執行的容器或所有指定的容器:
docker rm [CONTAINER]
移除指定名稱的容器。該命令的輸出截圖如下。
docker rm
輸出
5. docker rmi
使用該命令可以刪除影象。您可以刪除單個影象,也可以同時刪除多個影象。您可以使用短 ID 或長 ID 來描述要刪除的影象。該命令對於保持主機節點的整潔和高效非常重要。
影象刪除命令使用以下結構:
docker rmi [IMAGE ID]
下面是其輸出示例。
docker rmi
輸出
6. docker volume
該命令允許你管理 Docker 中的卷。你可以用它來建立、移除、列出和檢查卷。
docker volume
的一些引數如下:
create [OPTIONAL NAME]
建立一個新卷。你可以指定卷名,也可以讓 Docker 隨機生成一個卷名。ls
列出可用的卷inspect [NAME]
顯示卷的詳細資訊。rm [NAME]
從 Docker 中刪除卷。
下面是建立卷後的輸出示例。
docker volume create
輸出
7. docker search
使用此命令從 Docker Hub 搜尋映象,然後將其作為容器在你的機器上執行。它允許你在不訪問網站的情況下訪問 Docker Hub 登錄檔映象。
該命令的結構如下: Docker search
。你可以指定要搜尋的映象名稱,也可以建立一個過濾器。
下面是以下查詢輸出的示例:
docker search --filter is-official=true --filter stars=500 mysql
docker search
輸出
8. docker push
通過 docker push
命令,你可以在 Docker Hub 登錄檔或私有資源庫中共享你的映象。
該命令的結構如下:
docker push [OPTIONS] NAME[:TAG]
[OPTIONS]
允許你設定 -disable-content-trust
(禁用內容信任)。
預設情況下,該值為 true,並非必須包含。
NAME[:TAG]
要求使用登錄檔名稱、版本庫和圖片標籤。
下面是一個 docker push
輸出的示例。
docker push
輸出
9. docker pull
該命令從私有或公共註冊庫中的儲存庫下載 Docker 映象。
該命令是這樣執行的:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
只要必須建立容器化應用程式,該命令就能讓你使用現有映象,而不是建立新映象。
下面的示例顯示了 docker pull
命令的輸出結果:
docker pull
輸出
10. docker ps
預設情況下,該命令會顯示所有正在執行的容器列表。不過,你可以新增一個標記,根據磁碟使用大小、連結容器和標籤等屬性列出容器。
該命令的結構如下:
docker ps [OPTIONS]
其引數包括:
-a
顯示正在執行和已退出的容器列表-s
顯示每個容器的磁碟大小和虛擬大小
您可以像這樣將兩者結合使用:
docker ps -as
下面是一個 docker ps
命令輸出的示例。
docker ps
命令的部分輸出
11. docker tag
使用這個標籤可以為你的映象新增後設資料,比如版本。標籤通常是在構建映象時建立的,但 docker tag
命令允許你稍後新增標籤,本質上是為目標映象建立一個別名。
該命令的結構如下:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
在下面的示例中,我們列出了名稱為 “redis” 的圖片。用版本號(”2.0″)標記圖片後,新的別名和最初標記的圖片就會出現在列表中。
docker tag
輸出
12. docker rename
使用此命令重新命名容器。如果您有多個容器,並希望根據用途對它們進行區分,那麼這條命令就非常有用。
該命令的結構如下:
docker rename [OLD_NAME] [NEW_NAME]
下面是執行 docker rename
命令前後的輸出示例。
docker rename
輸出
13. docker commit
此命令允許您在更改容器檔案後建立新映像。這一點很重要,因為它可以讓您使用互動式 shell 除錯容器。
該命令的結構如下:
docker commit [CONTAINER_ID] [name-of-new-image]
下面是一個示例和 docker commit
的輸出結果。
docker commit
輸出
14. docker network
這是一個網路管理命令,可讓您通過連線服務和容器建立功能強大的應用程式。
該命令的結構如下:
docker network [OPTIONS]
其引數包括:
connect
用於將容器連線到網路create
用於構建新網路disconnect
用於將執行中的容器從網路中斷開rm
用於刪除單個或多個網路
以下是 docker network create
的輸出結果。
docker network create
輸出
15. docker history
該命令提供指定影象的歷史記錄,幫助您瞭解影象的建立過程並顯示影象大小。
該命令的結構如下:
docker history [IMAGE]
下面,我們看到了與影象 redis:latest
相關的歷史記錄。
docker history
輸出
16. docker update
使用該命令可以更新容器的配置。它有助於防止容器消耗過多的 Docker 主機資源。該命令的格式為:
docker update [OPTIONS] [CONTAINER]
其部分選項包括:
--restart
更新容器重啟策略--memory
設定容器的記憶體限制--cpus
設定分配的CPU數量
下面是一個 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
輸出
18. docker container
該命令允許你管理容器。你可以用它來執行建立、殺死和刪除容器等操作。
docker container
選項包括
create
用於建立容器commit
用於在對容器進行更改後建立新映像exec
用於在執行中的容器內執行命令kill
用於停止正在執行的容器ls
用於顯示 Docker 主機內的容器列表restart
用於重新啟動容器run
用於從映像建立容器並執行它rm
用於從 Docker 主機中移除容器
下面是一個 docker container
命令輸出的示例。
docker container restart
輸出
19. docker logs
該命令從容器中檢索日誌。它能讓人深入瞭解容器的執行情況,這在除錯時非常重要。
下面是一個 docker logs
命令輸出的示例。
docker logs
輸出
20. docker swarm
該命令有助於管理 Docker 星群–一組執行 Docker 並配置為在叢集中協同工作的機器(虛擬機器或物理機)。使用該命令可以輕鬆建立一個群集,並享受其帶來的好處。
下面是一些 docker swarm
選項:
init
用於啟動一個群集join
用於加入一個群集leave
用於退出群集update
用於更新群集
下面是一個例子和一個 docker swarm init
命令的輸出。
docker swarm init
輸出
小結
Docker 是構建和管理容器化應用程式的有效工具。其 CLI 命令簡單易懂,即使是複雜的應用程式,建立和操作起來也更加容易。
掌握以上 20 條命令可以加快容器化應用程式的開發速度。
評論留言