容器列表筛选是什么
容器多起来之后,靠肉眼在列表里找目标既慢又容易看漏。筛选参数按状态、退出码、名称、标签、镜像、健康状态等维度缩小范围,把「看列表」变成「取集合」,既可以用于人工判断,也可以直接喂给批量操作命令。
基本信息
| 语法 | docker ps [--filter 键=值]...,可叠加多个条件 |
|---|---|
| 状态类 | 按运行、停止、创建中等状态筛选 |
| 退出码类 | 按具体退出码筛选,便于找被强杀或异常退出的实例 |
| 名称与标签 | 按名称子串、按标签键值筛选,适合按业务分组 |
| 其他维度 | 镜像、网络、卷、健康状态、创建时间先后 |
典型使用场景
- 找出异常退出的容器:按非零退出码筛选,快速定位崩溃实例
- 按环境批量操作:用标签筛出开发或测试环境的一批容器统一处置
- 定位某个服务的实例:按名称筛选,随后查看状态与日志
- 排查内存问题:找出被强杀退出的容器,区分 OOM 与其他原因
- 清理前圈定目标:先筛选出集合,确认清单无误再执行删除
常用示例
常用示例
docker ps -a --filter status=exited # 所有已退出的容器
docker ps -a --filter exited=137 # 被强杀或内存超限的容器
docker ps -a --filter name=web # 按名称子串筛选
docker ps --filter label=env=prod # 按标签筛选
docker ps -a --filter ancestor=nginx:1.27-alpine # 由某镜像创建的容器
docker ps -a --filter health=unhealthy # 健康检查失败的容器常用筛选键
| 筛选键 | 作用 | 典型用法 |
|---|---|---|
| 状态 | 运行、停止、创建中等 | 找停止容器做清理 |
| 退出码 | 按具体退出码筛选 | 分辨内存超限与其他崩溃 |
| 名称 | 按名称子串匹配 | 定位单个服务的实例 |
| 标签 | 按键值对匹配 | 按环境或角色圈定范围 |
| 镜像来源 | 按创建该容器使用的镜像 | 用完某镜像后可一并处置 |
| 网络与卷 | 按接入的网络或挂载的卷 | 清理前的依赖检查 |
| 健康状态 | 按健康检查结果 | 找出不健康但仍在跑的实例 |
用筛选做批量操作
- 先执行一次只列名称的命令核对目标,再执行批量操作
- 名称子串匹配会命中相近名字的容器,确认范围时先看完整清单
- 多个条件叠加时先小范围试一次,确认语义符合预期
- 批量操作命令里避免解析表格输出,用只输出标识的方式配合取值
- 生产环境批量操作前确认监控与告警已就位,出问题能及时发现
名称筛选是子串匹配:搜一个短名字可能把多个容器一起命中。需要精确到单个实例时,先列出清单确认,或用只输出标识的方式二次筛选。
被强杀退出的容器先看内存限制与内存超限标记,再决定是调大限制还是排查泄漏,直接重启只是重复失败。