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 的前部分即可。)
示例:查看以 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 命令在容器增多时能够根据所需条件快速过滤和管理,非常实用且强大。请积极尝试并利用它!
目前没有评论。