docker ps是专用于查看运行中容器的命令,不带参数时默认列出正在运行容器的id、镜像、命令、创建时间、状态、端口和名称等七列信息;docker ps -a可显示所有状态容器;-q、--format、-f、--no-trunc等参数支持精准过滤与定制输出。
最直接的方式就是用 docker ps,它专为查看运行中容器设计,不带参数就能快速列出关键信息。
基础查看:只看正在运行的容器
执行:
docker ps
输出包含六列核心字段:CONTAINER ID、IMAGE、COMMAND、CREATED、STATUS、PORTS、NAMES。其中 STATUS 显示类似 Up 3 minutes,说明容器已持续运行 3 分钟。如果命令返回空,代表当前真没有运行中的容器——不是命令失效,而是确实没在跑。
扩展查看:包括已停止的容器
调试时经常需要看到“退出过”的容器,比如崩溃的服务或一次性任务:
- docker ps -a 或 docker container ls -a:列出全部容器(running、exited、created、paused 等)
- 状态栏会明确标出:Exited (0) 2 hours ago(正常退出)、Exited (137) 5 minutes ago(被 OOM killer 终止)、Created(尚未启动)
精准提取:按需过滤和定制输出
避免信息过载,用参数聚焦关键内容:
-
docker ps -q:只输出容器 ID,适合脚本批量操作,如
docker stop $(docker ps -q) - docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}":自定义表格,只显示 ID、名称和状态
- docker ps -f status=paused:仅列出暂停状态的容器
-
docker ps --no-trunc:显示完整容器 ID 和 COMMAND,避免被截断(例如看清是
docker-entrypoint.sh mysqld还是sh -c 'sleep infinity')
确认是否真在运行:别被 STATUS 欺骗
有些容器启动后立刻退出,docker ps 仍可能短暂显示 Up,但进程早已终止。这时要交叉验证:
- 查日志定位错误:docker logs
- 进容器看主进程是否存活:docker exec ps aux | grep your-main-process
- 记住原理:容器生命周期由启动命令决定。用
echo hello会立即退出;要保持运行,得配tail -f /dev/null或sleep infinity,并加-d后台启动。











