如何查看 Docker 容器列表?
docker ps 看运行中的容器,docker ps -a 看全部(含已停止),-q 只出 ID,--filter 按条件过滤,--format 自定义输出。本文汇总常用组合与脚本用法。
基本命令:docker ps 列出运行中的容器;docker ps -a 列出全部**(含已停止);等价的新写法是 docker container ls / docker container ls -a。脚本里常用 docker ps -q(只输出 ID)做批量操作。**
常用变体
docker ps # 运行中
docker ps -a # 全部(含停止的)
docker ps -q # 只显示容器 ID(脚本用)
docker ps -s # 加显示磁盘占用
docker ps -n 5 # 最近创建的 5 个(含停止)
docker ps -l # 最新创建的一个
输出列含义:CONTAINER ID / IMAGE / COMMAND / CREATED / STATUS / PORTS / NAMES。
过滤(--filter)
docker ps --filter "status=exited" # 只看已退出的
docker ps --filter "name=web" # 名字含 web
docker ps --filter "ancestor=nginx:1.25" # 由指定镜像启动的
docker ps --filter "label=env=prod" # 按标签
docker ps --filter "health=unhealthy" # 健康检查失败的
自定义输出格式(--format)
docker ps --format "{{.Names}}\t{{.Status}}\t{{.Ports}}"
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.RunningFor}}"
配合 watch 做简易监控台:
watch -n2 'docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
批量操作套路
docker stop $(docker ps -q) # 停全部
docker rm $(docker ps -aq --filter status=exited) # 删全部退出的
观测云对照
容器清单的平台化视角。 docker ps 是单机瞬时视角;观测云把每台主机的容器清单、状态、资源用量持续采集,多主机统一视图、历史变化可查,异常退出还有事件告警。
常见问题(FAQ)
Q:docker ps 和 docker container ls 有区别吗?
A:没有,后者是 1.13 后的新分组写法,ps 是兼容别名。
Q:为什么刚启动的容器 ps 里看不到?
A:多半启动即退出了——docker ps -a 找它,看 STATUS 的退出码,docker logs 容器名 查原因。
Q:能远程看另一台机器的容器吗?
A:docker -H tcp://host:2376 ps(需 TLS 配置)或 ssh 过去执行。