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