我希望有一个shell脚本来检查某个容器是否正在运行。
例如,如果容器尚未运行,我可能希望启动它,或者查询一些有关它的信息,比如公开了哪些端口。
发布于 2022-05-21 02:42:30
docker ps
命令采用一个-f
/ --filter
选项来定位所需的容器。要测试容器是否按名称运行,我们可以尝试
$ docker ps --filter "name=myapp" --filter "status=running"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91959ed76e77 foo/barbaz:latest "/init" 10 minutes ago Up 10 minutes myapp
如果我们只想要容器ID,因为我们要把它传递给另一个命令,比如docker exec
,我们可以使用-q
/ --quiet
$ docker ps --filter "name=myapp" --filter "status=running" --quiet
91959ed76e77
要检查它是否正在运行,我们可以查看输出是否为非空:
if [ -n "$(docker ps -f "name=myapp" -f "status=running" -q )" ]; then
echo "the container is running!"
fi
或者如果我们想要一些关于它的其他信息,--format
$ docker ps -f "name=myapp" -f "status=running" --format "{{.Image}}"
foo/barbaz:latest
https://stackoverflow.com/questions/72326287
复制相似问题