docker ps
列出容器。
使用方法
sh
docker ps [OPTIONS]描述
docker ps 命令列出容器。默认情况下,只显示运行中的容器。使用 -a 选项可以显示所有容器(包括已停止的)。
基本示例
sh
# 列出运行中的容器
docker ps
# 列出所有容器(包括已停止)
docker ps -a
# 只显示容器 ID
docker ps -q
# 显示最近创建的容器
docker ps -l
# 显示最近创建的 N 个容器
docker ps -n 3选项说明
| 参数 | 简写 | 类型 | 默认值 | 描述 |
|---|---|---|---|---|
--all | -a | bool | false | 显示所有容器(包括已停止) |
--filter | -f | list | - | 根据条件过滤输出 |
--format | - | string | - | 使用 Go 模板格式化输出 |
--last | -n | int | - | 显示最近创建的 N 个容器 |
--latest | -l | bool | false | 显示最近创建的容器 |
--no-trunc | - | bool | false | 不截断输出 |
--quiet | -q | bool | false | 只显示容器 ID |
--size | -s | bool | false | 显示文件大小 |
过滤选项
使用 --filter 或 -f 可以根据条件过滤容器:
按状态过滤
sh
# 显示已停止的容器
docker ps -a -f "status=exited"
# 显示运行中的容器
docker ps -f "status=running"
# 显示暂停的容器
docker ps -a -f "status=paused"按名称过滤
sh
# 按名称过滤
docker ps -f "name=my-container"
# 使用正则表达式
docker ps -f "name=^my"按标签过滤
sh
# 按标签过滤
docker ps -f "label=environment=production"
# 按多个标签过滤
docker ps -f "label=environment=production" -f "label=app=web"按镜像过滤
sh
# 按镜像名称过滤
docker ps -f "ancestor=nginx"
# 按镜像 ID 过滤
docker ps -f "ancestor=abc123"按 ID 过滤
sh
# 按容器 ID 过滤
docker ps -f "id=abc123"按退出码过滤
sh
# 显示退出码为 0 的容器
docker ps -a -f "exited=0"
# 显示退出码非 0 的容器
docker ps -a -f "exited!=0"按创建时间过滤
sh
# 显示在指定时间之前创建的容器
docker ps -a -f "before=my-container"
# 显示在指定时间之后创建的容器
docker ps -a -f "since=my-container"格式化输出
使用 --format 可以自定义输出格式:
基本格式化
sh
# 只显示容器 ID 和名称
docker ps --format "table {{.ID}}\t{{.Names}}"
# 显示 ID、名称和状态
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"常用字段
| 字段 | 描述 |
|---|---|
.ID | 容器 ID |
.Image | 镜像名称 |
.Command | 执行的命令 |
.CreatedAt | 创建时间 |
.RunningFor | 运行时长 |
.Ports | 端口映射 |
.Status | 容器状态 |
.Size | 容器大小 |
.Names | 容器名称 |
.Labels | 所有标签 |
.Mounts | 挂载的卷 |
格式化示例
sh
# 显示容器名称和镜像
docker ps --format "{{.Names}}: {{.Image}}"
# 显示容器名称、状态和端口
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# JSON 格式输出
docker ps --format "{{json .}}"常用组合示例
查看所有容器及其大小
sh
docker ps -a -s查看运行中的容器 ID
sh
docker ps -q查看特定镜像的容器
sh
docker ps -f "ancestor=nginx:latest"查看最近创建的容器
sh
docker ps -l自定义格式输出
sh
# 显示容器名称、镜像和状态
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
# 显示容器名称和端口映射
docker ps --format "table {{.Names}}\t{{.Ports}}"输出说明
默认输出包含以下列:
- CONTAINER ID - 容器唯一标识符
- IMAGE - 使用的镜像
- COMMAND - 容器启动时执行的命令
- CREATED - 容器创建时间
- STATUS - 容器状态(运行中、已停止等)
- PORTS - 端口映射
- NAMES - 容器名称
相关命令
- docker run - 运行容器
- docker start - 启动容器
- docker stop - 停止容器
- docker inspect - 查看容器详细信息
BSFC Tech Pro Tip
在生产环境中,建议使用 --filter 选项结合标签来快速定位特定环境的容器。同时,使用 --format 可以创建自定义的监控脚本,方便集成到 CI/CD 流程中。