首页/云/Docker 容器速查/docker ps 查看容器列表
基础命令50 条

docker ps 查看容器列表

列出容器状态的核心命令,默认仅显示运行中的容器;-a 看全部、-q 只取 ID、-s 附带磁盘占用,是日常巡检的起点。

Docker 容器速查云更新于 2026-10-13

docker ps 是什么

docker ps 用来列出容器及其运行状态,默认只显示正在运行的容器。它是容器巡检的起点:状态、运行时长、端口映射、容器名都在一屏里;加 -a 才能看到已退出的容器,否则启动即失败的容器看起来像从未存在过。

基本信息

语法docker ps [选项]
等价写法docker container ls
高频选项-a 含已停止 -q 只输出 ID -s 附带体积 -n 2 最近 2 个 -l 最近 1 个
过滤与格式化--filter 按状态/名称/标签筛选,--format 用模板控制输出列
权限要求能访问 Docker 守护进程即可,通常是 docker 组成员或 root

典型使用场景

  • 日常巡检:确认服务是否在运行、运行了多久、端口有没有按预期映射出去
  • 批量操作前打底:用 -q 取出容器 ID 列表,喂给 stop、rm、inspect 等命令
  • 排障第一步:加 -a 找出启动后立刻退出、根本没出现在默认输出里的容器
  • 容量判断:用 -s 看可写层大小,快速找出写日志写满磁盘的容器
  • 脚本与流水线里的存在性检查:用 --format 只取字段,避免解析表格对齐

常用示例

常用示例
docker ps                                    # 只看运行中的容器
docker ps -a                                 # 连已停止的一起看
docker ps -q | xargs -r docker inspect -f '{{.Name}} {{.State.Status}}'  # 批量查状态
docker ps -a --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'      # 自定义列
docker ps -a --filter status=exited --filter name=web  # 按条件筛

常见状态与含义

状态片段含义下一步动作
Up 3 hours容器已持续运行三小时正常,关注运行时长是否频繁归零
Exited (0)主进程正常结束一次性任务属于正常,常驻服务则要查启动命令
Exited (1)主进程报错退出看日志尾部,通常是配置或依赖问题
Exited (137)被强杀或内存超限查内存上限与 OOM 标记,别只改重启次数
Restarting正在按策略反复拉起先看日志找根因,重启只是重复失败
Created只创建未启动确认启动命令是否被中断
Paused进程被挂起确认是否有运维脚本暂停了容器

与其他命令的配合

  • docker ps -q 取出 ID 列表,直接喂给 stop、rm、inspect 做批量操作
  • docker ps -a --filter 先筛出目标集合,再决定处置顺序,避免误伤在线服务
  • docker top 看某容器内实际进程,与 ps 的状态列对照判断容器是否真在工作
  • docker port 看某个容器的端口映射明细,比 ps 的 PORTS 列更直观
容器状态由守护进程记录,反映的是主进程的存活情况;主进程活着但应用内部已经卡死时,ps 依然显示 Up,这类问题要靠健康检查或应用探针发现。

输出逐列读法

列含义怎么判断异常
CONTAINER ID容器短 ID命令里可直接引用,需要唯一性时用完整 ID
IMAGE创建容器时用的镜像与标签标签是 latest 时说明部署没锁版本
COMMAND容器主进程的启动命令与预期不符通常是 entrypoint 被覆盖
CREATED容器创建至今的时间刚创建却已退出,多半是配置或依赖问题
STATUS运行状态与时长Up 表示运行中,Exited (137) 多为被强杀或内存超限,unhealthy 表示健康检查失败
PORTS端口映射,显示为宿主到容器这里为空说明只是容器内监听,宿主机访问不到
NAMES容器名带序号后缀说明命名冲突,旧容器还占着名字
STATUS 列同时承载运行时长、健康检查结果和上一次退出时间,排障时先看这一列的变化,比直接翻日志快。
脚本里不要按列位置截取输出,列宽会随内容变化;用 --format 模板或 -q 加 inspect 取值更稳。
ps 自身不会启动或修复任何东西,它只读守护进程记录的状态;容器状态与容器内应用的存活不是一回事,进程健康要看健康检查或应用自身的探针。

易错点

  • 不加 -a 看不到已退出的容器,容器启动即失败时容易误判为从未创建,白折腾一轮参数
  • ps -s 的 SIZE 是「可写层加虚拟大小」两段值,不能当成镜像体积,容量规划要看 system df
  • 列宽会随内容变化,脚本里按列位置截取输出会在容器名变长后悄悄取错字段

数据来源与参考

  • Docker 官方 CLI 参考:docker ps(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌