docker ps 显示运行中容器,docker ps -a 查看所有容器(含已退出、暂停等);状态如 up 表示运行中,exited 表示已退出,paused 表示挂起,created 表示已创建未启动。

直接用 docker ps 就能看到当前正在运行的容器列表,状态一目了然;而要查所有容器(包括已退出、暂停、创建未启动的),加个 -a 参数就行。
只看正在运行的容器
执行命令:
docker ps
输出表格包含容器 ID、镜像名、启动命令、创建时间、状态(如 Up 2 minutes)、端口映射和容器名称。状态栏显示 Up 表示主进程仍在运行。
如果命令无任何输出,说明当前确实没有运行中的容器——不是命令出错,而是环境里真没跑着的。
注意:Up 5 seconds 是正常启动瞬间的状态;但如果刚出现就消失,大概率是容器启动后立即退出了。
查看全部容器(含历史记录)
调试失败服务、排查一次性任务或清理资源时,需要看到“曾经存在”的容器:
docker ps -a 或 docker container ls -a
这时状态栏会出现多种标识:
- Exited (0) 10 minutes ago → 正常退出,退出码为 0
- Exited (137) 2 minutes ago → 因内存不足被系统 OOM killer 终止
- Paused → 容器被挂起,不占 CPU,但保留内存
-
Created → 用
docker create创建但尚未启动
快速提取关键字段(适合脚本或快速判断)
不需要完整表格?可用以下方式精简输出:
- 只拿容器 ID 列表(方便后续批量操作):docker ps -q
- 自定义显示 ID、名称和状态:docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
- 按状态过滤,例如只看暂停的容器:docker ps -f status=paused
确认容器是否真在运行(避免“假运行”)
有些容器启动命令执行完就退出(比如 sleep 10),docker ps 可能短暂显示 Up,但实际已失效。这时需结合:
- 查日志定位错误:docker logs
- 进容器检查主进程是否存活:docker exec ps aux | grep your-process
根本原因在于:容器生命周期由启动命令决定。若命令结束,容器就终止;要长期运行,得用 nginx -g "daemon off;" 或 tail -f /dev/null 这类不退出的命令。











