如何使docker容器ls -f名称按名称过滤?

时间:2018-02-13 13:18:26

标签: docker

docker container ls -f name=foo返回名称中包含 foo 的所有容器。这意味着它还返回一个名为foobar的容器。如何过滤所有名为 foo 的容器?

2 个答案:

答案 0 :(得分:8)

docker container ls -f name=^/foo$

可以使用正则表达式来实现。插入符号^与名称的确切开头匹配,而美元$与结尾匹配。

需要使用斜杠/,因为过滤器机制需要以斜杠为前缀的名称。

答案 1 :(得分:4)

只有一个名为" foo"的容器,所以请使用:

$ docker container inspect foo
相反,您可以格式化输出以从中获取所需的任何数据。例如。显示当前状态和图像:

$ docker container inspect foo -f '{{.State.Status}} {{.Config.Image}}'
running foo_image:latest

从评论中,看看容器" foo"存在,你可以使用:

if docker container inspect foo >/dev/null 2>&1; then
  echo "container exists"
else
  echo "container does not exit"
fi