当前位置: 首页 > news >正文

【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容器,为后续的容器运维工作打下坚实基础。
http://www.lqws.cn/news/542629.html

相关文章:

  • RAG 多段检索 + 多段拼接 + Encoder 与 Decoder 原理详解
  • C++11 lambda
  • 【C++】命令模式
  • iOS App 上架常见问题解决方案:六大难点与实战工具分工详解
  • MCP-安全(代码实例)
  • 鸿蒙OH南向开发 小型系统内核(LiteOS-A)【文件系统】上
  • Web基础关键_003_CSS(一)
  • 3.web逆向之开发者工具调试
  • Guava Cache 本地项目缓存
  • JDBC 工具类:1.0到3.0版本
  • leetcode 295. 数据流的中位数
  • element-plus限制日期可选范围(这里以7天为例)
  • Unity 脚本自动添加头部注释
  • Qwen VLo :一个多模态统一理解与生成模型
  • 在shell中直接调用使用R
  • 【容器】容器平台初探 - k8s整体架构
  • RJ45 以太网与 5G 的原理解析及区别
  • swagger访问不了的解决方案 http://localhost:8080/swagger-ui/index.html
  • 可编辑37页PPT | 数字化转型咨询规划方案
  • Mysql Mybatis批量插入和批量更新数据
  • 设计模式 | 适配器模式
  • LaTeX下载与实践入门指南
  • 在 Dev Container 中实现 GUI 开发的解决方案
  • 报表控件stimulsoft教程:在报表、仪表板和 PDF 表单自动生成缩略图
  • SQL Server 中 GO 的作用
  • mPaaS 客户端诊断概述
  • CSS3实现同心圆效果
  • Go 语言中的 package 和 go modules
  • (二)YOLOV12部署训练
  • 人工智能-基础篇-1-人工智能介绍(发展史,技术体系,技术基础,主要领域,前景和挑战)