You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何全局查看由docker-compose创建的所有运行中容器(不受docker-compose.yml文件限制)

如何全局查看所有Docker容器状态(无论启动方式)

别担心,我来帮你解决这个问题。先理清几个关键命令的区别,再给你对应的解决方案:

1. 最直接的全局查看命令

正常情况下,docker ps就是用来查看所有正在运行的容器的——不管你是用单个docker run命令启动的,还是通过任意docker-compose.yml文件启动的,它都应该把所有运行中容器列出来。

如果你的docker ps看不到容器,先试试这个包含已停止容器的命令:

docker ps -a

如果还是看不到,大概率是你切换了Docker上下文(比如不小心切到了Kubernetes或远程Docker主机环境)。先检查当前上下文:

docker context ls

如果当前不是default上下文,切换回去即可:

docker context use default

切换后再运行docker ps,就能看到所有容器了。

2. 查看容器所属的Compose项目(可选)

如果你想同时知道每个容器来自哪个docker-compose.yml项目,可以用格式化输出命令,把Compose项目名称也显示出来:

docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Label \"com.docker.compose.project\"}}"

这样你就能清楚区分不同yml文件启动的容器实例。

为什么docker-compose ps只能看特定容器?

这是因为docker-compose ps项目级别的命令,它默认只关注当前目录下docker-compose.yml对应的项目容器。如果要查看其他yml文件的容器,你需要用-f参数指定文件路径:

docker-compose -f /path/to/your/other-compose.yml ps

但它本质上还是针对单个Compose项目的,而docker ps是全局视角,覆盖所有容器。

内容的提问来源于stack exchange,提问作者Gulzar

火山引擎 最新活动