首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用命令行工具按应用列出docker容器

使用命令行工具按应用列出docker容器
EN

Stack Overflow用户
提问于 2021-04-15 00:18:05
回答 2查看 111关注 0票数 1

如何按应用程序列出docker容器?例如,假设我部署了app1 (具有c1、c2、c3)和app2 (具有c4、c5)。使用docker仪表板,我可以看到c1、c2和c3在app1下,c4和c5在app2下。但是,如果我执行"docker ps",它会返回一个简单的容器列表,我无法知道哪些容器属于哪个应用程序?下面是一个例子。

如左侧docker仪表板所示,在docker环境中部署了nginx-gohttp-master和demo两个应用程序。第一个应用程序有两个容器,第二个应用程序有四个容器,这两个应用程序彼此独立。但是,我只在右侧看到了"docker ps“列出的容器的平面列表。我想知道部署了多少个应用程序,哪些容器属于哪个应用程序。我如何使用docker命令行工具来做到这一点?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2021-04-15 03:08:30

默认情况下,docker-compose会添加一些labels,包括包含compose应用程序/项目名称的com.docker.compose.project。您可以使用带有--format optiondocker ps获得该输出,如下所示:

代码语言:javascript
运行
复制
$ docker ps --format 'table {{.Label "com.docker.compose.project"}} {{.ID}} {{.Names}} {{.Command}} {{.Status}}'
project CONTAINER ID NAMES COMMAND STATUS
app1 1fd93328e69b app1_nginx_1 "/docker-entrypoint.…" Up 3 minutes
app2 9fe81391b961 app2_nginx_1 "/docker-entrypoint.…" Up 2 minutes
app3 d28fca61a184 app3_nginx_1 "/docker-entrypoint.…" Up 1 minutes

您可以看到docker-compose应用here的其他一些标签。

票数 2
EN

Stack Overflow用户

发布于 2021-04-15 04:38:01

查看filters

  1. 过滤器运行containers

代码语言:javascript
运行
复制
docker ps --filter "name=nginx-gohttp-master"

  1. Filter all containers (running + stopped)

代码语言:javascript
运行
复制
docker ps -a --filter "name=nginx-gohttp-master"

显然不需要通配符*,因为=不是直接的完全匹配字符串相等,而是一个子字符串搜索。

对于精确匹配(这不是您在问题中想要的),您需要将结果通过管道传递到其他内容,如所讨论的here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67095441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档