如何列出不属于Swarm集群的Docker Compose栈?
非Swarm环境下查看Docker Compose栈的方法
docker stack ls是Docker Swarm集群专属命令,非Swarm节点无法使用。针对非Swarm环境,可通过以下方式快速查看所有Compose栈:
官方推荐方式:使用Docker Compose命令
直接执行以下命令,即可列出所有由docker compose up启动的栈(包含运行中和已停止状态):docker compose ls若要查看特定栈的容器状态,切换到对应Compose文件目录后执行:
docker compose ps通过容器标签过滤栈名称
Docker Compose会为每个容器添加com.docker.compose.project标签(对应栈名称),可通过以下命令提取所有唯一的栈名称:docker ps --filter "label=com.docker.compose.project" --format "{{.Labels/com.docker.compose.project}}" | sort -u若需要更详细的JSON解析(需提前安装
jq工具):docker inspect $(docker ps -q) | jq -r '.[].Config.Labels."com.docker.compose.project"' | sort -u
如果一定要使用docker stack ls,需先将节点纳入Swarm集群:
- 初始化本地Swarm管理节点:
docker swarm init - 加入已有Swarm集群:执行集群管理节点生成的
docker swarm join命令即可。
内容的提问来源于stack exchange,提问作者Labeeb
相关产品推荐
相关产品推荐

