当前位置: 首页 > 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容器,为后续的容器运维工作打下坚实基础。

相关文章:

  • HexHub开发运维利器Database, Docker, SSH, SFTP
  • 数据库外连接详解:方式、差异与关键注意事项
  • 基于fpga的串口控制的音乐播放器
  • Franka 机器人在配置空间距离场实验中的突破性应用:从算法优化到动态场景适配
  • Stable Diffusion 3终极提示词库:2000个工业设计场景生成公式(2025企业级实战指南)
  • html css js网页制作成品——HTML+CSS湘菜网页设计(4页)附源码
  • Ehcache、Caffeine、Spring Cache、Redis、J2Cache、Memcached 和 Guava Cache 的主要区别
  • 自动化保护 AWS ECS Fargate 服务:使用 Prisma Cloud 实现容器安全
  • 无人机防护装置技术解析
  • 5,FreeRTOS中断管理
  • 本地部署 WordPress 博客完整指南(基于 XAMPP)
  • 替代创维GL3213S 读卡DD3118方案3.0国产 GL3224-32 TF/SD卡解码芯片
  • 【开源项目】「安卓原生3D开源渲染引擎」:Sceneform‑EQR
  • 汽车涂胶车间的“通信桥梁”:PROFIBUS DP转ETHERNET/IP网关的应用实践
  • 高防IP在服务器中的作用都有哪些?
  • 微信小程序进度条progress支持渐变色
  • iOS 网络请求断连重试失败?抓包分析丢包原因的完整流程
  • 设计模式精讲 Day 15:解释器模式(Interpreter Pattern)
  • .net8创建tcp服务接收数据通过websocket广播
  • 安科瑞碳计量电表与碳资产管理平台:企业双碳转型的智能中枢