Skip to content

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-aboolfalse显示所有容器(包括已停止)
--filter-flist-根据条件过滤输出
--format-string-使用 Go 模板格式化输出
--last-nint-显示最近创建的 N 个容器
--latest-lboolfalse显示最近创建的容器
--no-trunc-boolfalse不截断输出
--quiet-qboolfalse只显示容器 ID
--size-sboolfalse显示文件大小

过滤选项

使用 --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 - 容器名称

相关命令

BSFC Tech Pro Tip

在生产环境中,建议使用 --filter 选项结合标签来快速定位特定环境的容器。同时,使用 --format 可以创建自定义的监控脚本,方便集成到 CI/CD 流程中。

由 BSFC Tech 提供技术支持