docker ps
命令支持--filter name=X
选项,但不幸的是,它匹配名称的任何部分。因此,上述命令将返回两个容器:X
和XY
。我尝试使用正则表达式name='^X$'
,但它没有起作用。
如何通过名称确定容器是否正在运行?
docker ps
命令支持--filter name=X
选项,但不幸的是,它匹配名称的任何部分。因此,上述命令将返回两个容器:X
和XY
。我尝试使用正则表达式name='^X$'
,但它没有起作用。
如何通过名称确定容器是否正在运行?
docker ps -a --no-trunc --filter name=^/foo$
这使得你的问题有另一个答案。docker ps --filter name=^/X$
docker container inspect
。要查看容器是否存在,请在 /bin/sh
或 bash
中使用 if
来检查命令的错误状态:if [ "$(docker container inspect --format '{{.State.Status}}' $container_name 2>&1)" == "running" ]; then
echo "running"
else
echo "not_running"
fi
| jq .[].State.Status
进行此操作,并检查它是否正在运行。类似 [ $(docker container inspect <NAME> | jq .[].State.Status -r) == "running" ]
,然后跟随 if [ $? -ne 0 ]; then ...
- swalog[ "$(docker container inspect <NAME> 2>/dev/null | jq .[].State.Status -r)" == "running" ]
- swalog
docker ps | grep " some_name "
。请注意,在“some_name”之前和之后的空格。 - OpenUserX03docker ps --format="{{.Names}}" |grep '^X$'
,但我认为这样做只是一个糟糕的选择,因为假设部分匹配是最好的选择。 - ekkisdocker ps
,直接使用适合你所需值的格式进行docker container inspect
。 - BMitch