在容器名称上使用 glob / 通配符运行 docker 命令

Nic*_*ker 6 docker docker-compose

我正在使用docker-compose up --scale创建同一容器的多个版本。其结果是我最终的容器命名container_foo_1container_foo_2等等。

docker 是否支持在其命令行工具中对容器名称进行任何类型的通配符/通配符匹配?我想做的是这样的:

docker inspect container_foo_*

我现在在短期内所做的只是使用:

docker-inspect container_foo_{1,2} (使用 bash 大括号扩展)

但如果有一种方法让我不知道有多少容器/数量是多少,我会很高兴。

小智 6

您可以--filter | -fdocker pswith 中使用参数docker inspect

用法: docker ps --filter key=value,其中value接受正则表达式。

目前支持的过滤器有:

  • id 容器的 ID
  • name 容器名称
  • label 表示键或键值对的任意字符串。表示为或=
  • exited 表示容器退出代码的整数。只对 --all 有用。
  • status 创建、重新启动、运行、移除、暂停、退出或死亡之一
  • ancestor 过滤共享给定图像作为祖先的容器。表示为 * [:], , 或
  • before or since 过滤在给定容器 ID 或名称之前或之后创建的容器
  • volume 过滤运行已安装给定卷或绑定安装的容器。
  • network 过滤器运行连接到给定网络的容器。
  • publish or expose 过滤发布或公开给定端口的容器。表示为<port>[/<proto>]<startport-endport>/[<proto>]
  • health 根据容器的健康检查状态过滤容器。开始、健康、不健康或没有之一。
  • isolation 仅 Windows 守护程序。default、process 或 hyperv 之一。
  • is-task过滤作为服务“任务”的容器。布尔选项(真或假)

前任: docker inspect $(docker ps --filter name=^/server)

参考: