【Docker基础】Docker容器管理:docker ps及其参数详解
目录
1 docker ps命令概述
1.1 命令定位与作用
1.2 命令基本语法
2 基础参数详解
2.1 默认输出解析
2.2 核心参数解析
2.2.1 -a, --all
2.2.2 -q, --quiet
2.2.3 --no-trunc
3 高级过滤与格式化
3.1 过滤器(--filter)详解
3.1.1 常用过滤条件
3.1.2 实际应用示例
3.2 格式化输出(--format)
3.2.1 常用占位符
3.2.2 使用示例
4 状态信息深度解析
4.1 容器状态机
4.2 状态字段详解
5 实用技巧与组合命令
5.1 查看容器大小
5.2 时间格式控制
5.3 与其他命令组合
5.3.1 批量停止容器
5.3.2 清理所有停止的容器
5.3.3 查看最新创建的容器
6 生产环境建议
6.1 监控建议
6.2 安全建议
6.3 性能优化
7 命令原理深度解析
7.1 Docker客户端-服务端交互
7.2 数据来源分析
8 总结
1 docker ps命令概述
1.1 命令定位与作用
- docker ps是Docker容器管理中最基础且最常用的命令之一,它用于列出容器信息
- 作为Docker管理员,80%的容器管理操作都会从docker ps开始,它提供了容器运行状态的全局视图

1.2 命令基本语法
docker ps [OPTIONS]
2 基础参数详解
2.1 默认输出解析
- 不带任何参数执行时,docker ps显示正在运行的容器:
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0762029c4aa bitnami/kafka:3.6 "/opt/bitnami/script…" 2 months ago Up 3 days (Paused) 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp kafka
d821a448f5b2 bitnami/zookeeper:3.8 "/opt/bitnami/script…" 2 months ago Up 3 days 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp zookeeper
[root@node1 ~]#
- CONTAINER ID:容器唯一标识(前12位)
- IMAGE:容器使用的镜像
- COMMAND:容器启动命令
- CREATED:创建时间
- STATUS:运行状态
- PORTS:端口映射
- NAMES:容器名称
2.2 核心参数解析
2.2.1 -a, --all
- 作用:显示所有容器(包括停止的)
- 示例:
docker ps -a
输出变化:
- 增加Exited状态的容器
- 显示完整的生命周期视图
2.2.2 -q, --quiet
- 作用:仅显示容器ID
使用场景:
- 批量操作容器时获取ID列表
- 脚本编程中处理容器ID
- 示例:
docker ps -q
2.2.3 --no-trunc
- 作用:显示完整信息(不截断)
- 示例:
docker ps --no-trunc
输出变化:
- 显示完整的CONTAINER ID(64字符)
- 显示完整的COMMAND命令
3 高级过滤与格式化
3.1 过滤器(--filter)详解
Docker提供了强大的过滤系统,可以基于多种条件筛选容器。
3.1.1 常用过滤条件

3.1.2 实际应用示例
- 查找所有退出的容器:
docker ps -a --filter "status=exited"
- 查找基于ubuntu镜像的容器:
docker ps --filter "ancestor=ubuntu"
- 查找带有特定标签的容器:
docker ps --filter "label=environment=production"
3.2 格式化输出(--format)
3.2.1 常用占位符
占位符 | 描述 |
.ID | 容器ID |
.Image | 镜像名称 |
.Command | 启动命令 |
.RunningFor | 运行时长 |
.Status | 状态信息 |
.Ports | 端口映射 |
.Names | 容器名称 |
.Labels | 所有标签 |
.Label | 特定标签 |
3.2.2 使用示例
- 表格形式输出:
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
JSON格式输出:
docker ps --format '{{json .}}'
- 自定义简洁输出:
docker ps --format "Container {{.ID}} is {{.Status}} ({{.Image}})"
4 状态信息深度解析
4.1 容器状态机

4.2 状态字段详解
- Up [time]:运行中,显示持续时间
- Exited ([code]):已退出,显示退出码
- Created:已创建未启动
- Restarting:重启中
- Paused:已暂停
- Dead:异常终止
5 实用技巧与组合命令
5.1 查看容器大小
docker ps -s
5.2 时间格式控制
- 使用--format配合时间函数:
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.RunningFor}}\t{{.Status}}"
- 自定义时间格式:
docker ps --format "{{.ID}} {{.CreatedAt}}"
5.3 与其他命令组合
5.3.1 批量停止容器
docker stop $(docker ps -aq)
5.3.2 清理所有停止的容器
docker rm $(docker ps -aq -f status=exited)
5.3.3 查看最新创建的容器
docker ps -n 3
6 生产环境建议
6.1 监控建议
- 定期检查异常状态容器
docker ps -a --filter "status=exited" --filter "status=dead"
- 监控重启次数过多的容器
docker ps -a --filter "status=restarting"
6.2 安全建议
- 限制docker ps输出中的敏感信息
- 使用标签标记生产环境容器
docker ps --filter "label=environment=production"
- 定期审计容器状态变化
6.3 性能优化
- 对大数量容器使用过滤条件
- 在脚本中使用-q参数减少输出处理
- 缓存频繁使用的查询结果
7 命令原理深度解析
7.1 Docker客户端-服务端交互

7.2 数据来源分析
docker ps 数据主要来自:
- 容器元数据:/var/lib/docker/containers/
- 运行时状态:通过containerd/api获取
- 网络配置:从网络命名空间收集
- 存储驱动:获取容器大小信息
8 总结
- 基础查询:docker ps默认显示运行中容器
- 全面视图:-a参数显示所有状态容器
- 高效过滤:--filter实现精准筛选
- 自定义输出:--format灵活控制显示格式
通过掌握docker ps及其各种参数组合,可以高效地管理和监控Docker容器,为后续的容器运维工作打下坚实基础。