3.1 使用 docker ps
指令的基礎
docker ps
指令在 Docker 的工具集裡是最有用的之一。它會顯示正在運行的容器清單,並提供相關的信息。在這節課程中,我們會詳細說明如何使用 docker ps
來檢查你容器的狀態,並了解有哪些參數可以用來更細緻化地輸出信息。
預設情況下,指令 docker ps
只顯示當前正在運行的容器清單。
語法
docker ps [OPTIONS]
其中:
-
OPTIONS
: 用於過濾和格式化輸出的額外選項。
基本使用範例
docker ps
這個基本的 docker ps
指令會顯示所有正在運行的容器清單。輸出內容會包括以下欄位:
- CONTAINER ID: 容器的唯一識別碼。
- IMAGE: 創建容器所用的映像。
- COMMAND: 容器內正在執行的指令。
- CREATED: 自容器創建以來的時間。
- STATUS: 容器的當前狀態 (例如 Up 5 minutes)。
- PORTS: 被映射的端口。
- NAMES: 容器的名稱。
列出所有容器
若要顯示所有容器,包括已停止的容器,請使用 選項 -a:
docker ps -a
此指令會顯示曾經運行過的所有容器清單,並標示它們的當前狀態 (運行中、停止等)。
3.2 輸出過濾
Docker 提供了一個功能,可過濾 docker ps
命令的輸出,僅顯示符合指定條件的容器。
1. 按狀態過濾
例如,要顯示僅停止的容器:
docker ps -f "status=exited"
2. 按名稱過濾
要顯示具有特定名稱或其部分名稱的容器:
docker ps -f "name=my_container"
3. 按映像過濾
要顯示由特定映像創建的容器:
docker ps -f "ancestor=nginx"
3.3 格式化輸出
你可以配置 docker ps
命令的輸出,讓它更易讀或者只包含你需要的欄位。為此可以使用參數 --format
。
格式化範例
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
這個範例輸出一個包含容器 ID、名稱和狀態的表格。
表格中可用的欄位
- {{.ID}}: 容器的 ID。
- {{.Image}}: 容器的映像。
- {{.Command}}: 在容器中執行的命令。
- {{.CreatedAt}}: 容器的創建時間。
- {{.RunningFor}}: 容器的運行時間。
- {{.Status}}: 容器的當前狀態。
- {{.Ports}}: 映射的端口。
- {{.Names}}: 容器的名稱。
使用範例
範例 1: 只顯示容器的 ID
此範例只會輸出正在運行的容器 ID。對於在腳本中使用很有幫助。
docker ps -q
範例 2: 顯示最近 24 小時內啟動的容器
docker ps --filter "since=24h"
範例 3: 顯示特定狀態的容器並格式化輸出
此範例會輸出一個表格,包含所有正在運行容器的名稱、狀態和映射的端口。
docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
3.4 實際應用場景
1. 監控正在運行的容器
當你有多個容器在運行時,使用 docker ps
指令可以快速檢查它們的當前狀態,確保一切都運行順利。
docker ps
2. 查找並刪除已停止的容器
容器執行結束後,它們會一直保留在系統中,直到你刪除它們為止。你可以使用 docker ps -a
查找所有已停止的容器,然後刪除它們。
docker ps -a -f "status=exited"
docker rm $(docker ps -a -f "status=exited" -q)
3. 任務自動化
在腳本中使用 docker ps
命令能夠幫助你自動化各種容器管理任務。例如,你可以生成容器狀態報告,或者在容器停止時自動重啟它們。
if [ $(docker ps -q -f "name=my_container") ]; then
echo "Container is running"
else
docker start my_container
fi
重要! 這個“代碼”是用 Linux 終端執行的。你可能需要學習一下。
GO TO FULL VERSION