docker ps -a --filter 命令在 Docker 容器列表中根據特定條件過濾時非常有用。這是一個強大的功能,可以在容器眾多的環境中快速找到所需的容器。
下面我將與實際案例一起介紹主要的過濾選項。
基本格式
docker ps -a --filter <過濾名稱>=<過濾值>
可以同時使用多個過濾器,在這種情況下需要使用多個 --filter 選項。
🔍 主要過濾選項及應用案例
1. 根據狀態(status)過濾
用於根據容器狀態過濾。
| 狀態選項 | 描述 |
|---|---|
| created | 已創建但尚未啟動的容器 |
| restarting | 不斷重啟的容器 |
| running | 當前運行中的容器 |
| paused | 暫停的容器 |
| exited | 已退出的容器 |
範例:查看僅運行中的容器
docker ps -a --filter status=running
範例:查看僅已退出的容器
docker ps -a --filter status=exited
2. 根據容器名稱(name)過濾
用於查找包含特定名稱的容器。
範例:僅查看名稱中包含「web」的容器
docker ps -a --filter name=web
- 結果範例:
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
f1c2d3e4f5 nginx:latest "/start" 2 days ago Up 2 days my-web-container
3. 根據使用的映像(image)過濾
用於輕鬆查找使用特定映像的容器。
範例:查看使用 nginx 映像的容器
docker ps -a --filter ancestor=nginx
- 結果範例:
CONTAINER ID IMAGE COMMAND STATUS NAMES
a1b2c3d4e5 nginx:latest "/start" Up 3 hours nginx-server-1
f6g7h8i9j0 nginx:alpine "/start" Exited nginx-temp
4. 根據卷(volume)過濾
用於查找掛載特定卷的容器。
範例:查看使用 my_volume 卷的容器
docker ps -a --filter volume=my_volume
- 結果範例:
CONTAINER ID IMAGE COMMAND STATUS NAMES
1a2b3c4d5e postgres "docker-entry" Up 2 days postgres_db
5. 根據標籤(label)過濾
在 Docker Compose 或 Kubernetes 等環境中標記容器以進行管理時非常有用。
範例:查看標籤為「env=production」的容器
docker ps -a --filter label=env=production
- 結果範例:
CONTAINER ID IMAGE COMMAND STATUS NAMES
abcdef12345 myapp:latest "/run-app" Up 3 days myapp-production
6. 根據網路(network)過濾
用於檢查連接到特定網路的容器列表。
範例:查看連接到特定網路的容器
docker ps -a --filter network=my_network
- 結果範例:
CONTAINER ID IMAGE COMMAND STATUS NAMES
123abc456de redis "/start" Up 1 day redis-cache
456def789gh postgres "/start" Up 1 day postgres-db
7. 根據 ID 過濾
用於快速搜索特定容器 ID。 (通常只需輸入 ID 的前幾位即可。)
範例:查看 ID 開頭為 1234 的容器
docker ps -a --filter id=1234
💡 使用多個過濾器組合
可以組合多個過濾器。
範例:「web」包含在名稱中,狀態為「running」,並且使用「nginx」映像的容器
docker ps -a --filter name=web --filter status=running --filter ancestor=nginx
🛠️ 實用案例
- 當需要停止特定項目的所有容器時:
docker stop $(docker ps -a -q --filter name=my_project)****
- 刪除舊的已退出容器:
docker rm $(docker ps -a -q --filter status=exited)
- 清理不必要的臨時容器:
docker rm $(docker ps -a -q --filter ancestor=temp_image)
因此,docker ps -a --filter 命令在容器增多時能讓您根據特定條件快速過濾和管理,實用且強大。請積極加以利用!
目前沒有評論。