“docker ps”和“docker-compose ps”命令给出不同的结果。

14

docker psdocker-compose ps 的输出不同。

例如:

docker ps

docker-compose ps

显示的容器不同,反之亦然。

这是什么原因?

我想 docker-compose 是在 docker 的基础上工作。

2个回答

23

docker ps 命令用于列出 Docker 引擎中所有正在运行的容器。 docker-compose ps 命令用于列出与在 docker-compose file 中声明的镜像相关的容器。

docker-compose ps 的结果是 docker ps 结果的子集。


“docker-compose ps”的结果是“docker ps”结果的子集。但并非所有情况下都是子集。例如,当容器无法运行时,它将显示在“docker-compose ps”中,但不会显示在“docker ps”中。 - frostcs

1

docker ps - 列出 Docker 引擎中所有正在运行的容器。

docker-compose ps - 列出给定 Docker Compose 配置中的容器。结果将取决于传递给 docker-compose 命令的配置和参数。

示例

使用以下命令启动容器:

docker-compose -p prod up -d

(上述命令中的-p定义了项目名称)

运行docker-compose ps不会列出容器,因为未传递项目名称参数:

docker-compose ps

Name   Command   State   Ports
------------------------------

运行docker-compose -p prod ps将列出所有容器:
     Name                   Command               State                       Ports
--------------------------------------------------------------------------------------------------------
dev_app_1        sh -c exec java ${JAVA_OPT ...   Up      0.0.0.0:5005->5005/tcp, 0.0.0.0:9001->9000/tcp
dev_database_1   docker-entrypoint.sh postgres    Up      0.0.0.0:5432->5432/tcp
dev_nginx_1      /docker-entrypoint.sh ngin ...   Up      0.0.0.0:8443->443/tcp, 0.0.0.0:8080->80/tcp
dev_pgadmin_1    /entrypoint.sh                   Up      443/tcp, 0.0.0.0:9100->80/tcp

如果您使用-f参数定义docker compose文件,同样适用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接