首页  

docker ps 与 docker compose ps 的区别     所属分类 docker 浏览量 5
docker ps 看全局所有容器;
docker compose ps 只看当前项目的容器。

一、作用范围不同
docker ps
列出宿主机上所有容器(不管是不是 Compose 启动的)。

# 所有运行中容器
docker ps
# 所有容器(含停止)
docker ps -a

docker compose ps
仅列出当前目录下 docker-compose.yml 定义的项目容器。

# 先进入 Compose 项目目录
cd /path/to/your/compose/project
# 只看本项目容器
docker compose ps
# 含停止容器
docker compose ps -a


二、输出内容不同
docker ps 标准字段:
CONTAINER ID、IMAGE、COMMAND、CREATED、STATUS、PORTS、NAMES


CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS         PORTS     NAMES
a1b2c3d4e5f6   nginx:alpine  "nginx -g" 2 minutes ago   Up 2 minutes   80/tcp    my-nginx

docker compose ps  
多一个 SERVICE 字段(对应 compose.yml 里的服务名),默认隐藏容器 ID。

NAME                SERVICE   STATUS         PORTS
myapp-web-1         web       Up 2 minutes   0.0.0.0:80->80/tcp
myapp-db-1          db        Up 2 minutes   3306/tcp


三、使用场景不同
docker ps
全局排查:看宿主机上所有容器状态。
查非 Compose 容器:比如用 docker run 启动的容器。
取容器 ID:用于 docker exec、docker inspect 等。

docker compose ps
项目内管理:只关心当前 Compose 项目的容器。
服务视角:直接看到容器对应哪个服务(web/db/redis)。
多项目隔离:服务器跑多个 Compose 项目时,互不干扰。



四、关键区别总结表

维度/docker ps/docker compose ps
范围       全局所有容器         当前 Compose 项目容器
依赖目录    任意目录           必须在 compose.yml 所在目录
关键字段    容器 ID、镜像名     服务名(SERVICE)
典型用途    全局排查、取容器ID   项目内服务状态查看


五、常用搭配
全局查所有 Compose 容器(用 label 过滤):
docker ps -f label=com.docker.compose.project

查特定 Compose 项目的容器:
docker ps -f label=com.docker.compose.project=项目名

上一篇     下一篇
《人类简史》时间线

《人类简史》核心观点

查看容器应用 docker compose配置文件地址

Docker & Docker Compose 常用命令速查表