docker ps命令提供了非常灵活的过滤和格式化功能让你能精确地找到需要的容器信息。主要可以通过两种方式来实现一是用--filter或-f参数筛选出符合条件的容器二是用--format参数自定义展示的信息内容。 使用--filter筛选容器这是最常用的方式你可以根据容器的各种属性进行筛选。基本语法是docker ps [选项] --filter 条件值。过滤条件说明命令示例示例用途id根据容器的ID进行过滤docker ps --filter id你的容器ID查找特定ID的容器name根据容器的名称进行过滤支持部分匹配docker ps --filter namemysql查找名称中包含 “mysql” 的容器ancestor根据使用的镜像进行过滤docker ps --filter ancestornginx:latest查找所有由nginx:latest镜像创建的容器status根据容器状态进行过滤docker ps --filter statusexited只显示已退出的容器方便清理docker ps --filter statusrunning只显示正在运行的容器label根据容器的标签进行过滤docker ps --filter label环境生产查找打了环境生产标签的容器exited根据容器的退出码进行过滤docker ps -a --filter exited0查找正常退出的容器组合使用你也可以同时使用多个--filter来组合条件例如查找名称包含 “mysql” 且正在运行的容器dockerps--filternamemysql--filterstatusrunning 使用--format自定义输出当你只想看容器的某几个信息或者想把输出弄得整洁一点时--format参数就很有用了。它使用Go模板语法来定义输出格式。常用占位符{{.ID}}: 容器ID{{.Image}}: 镜像名称{{.Command}}: 启动命令{{.CreatedAt}}: 创建时间{{.RunningFor}}: 已运行时间{{.Status}}: 容器状态{{.Ports}}: 端口映射信息{{.Names}}: 容器名称使用示例只显示容器ID和名称制表符分隔dockerps--formattable {{.ID}}\t{{.Names}}输出效果类似CONTAINER ID NAMES a1b2c3d4e5f6 my_mysql以JSON格式输出所有信息便于脚本处理dockerps--format json这会为每个容器输出一行JSON数据。自定义一个更详细的列表dockerps--formattable {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}✨ 组合使用过滤 格式化将两者结合是最强大的用法。例如你想列出所有已退出的容器并只看它们的ID和名称dockerps-a --filterstatusexited--formattable {{.ID}}\t{{.Names}}如果需要快速找到某个容器并根据它的状态进行一些操作可以用这个命令来查看它dockerps-a --filternamemysql--formattable {{.Names}}\t{{.Status}}\t{{.Ports}}这样可以清晰看到容器的运行状态和端口映射方便决策。 一点小技巧如果你有一个常用的复杂--format输出格式想让它成为默认设置可以把它配置到 Docker CLI 的配置文件中~/.docker/config.json这样每次运行docker ps都会按你的格式输出。不过对于大多数场景来说直接在命令中使用已经足够灵活了。