我想要一个 shell 脚本来检查特定容器是否正在运行。
例如,如果容器尚未运行,我可能想要启动该容器,或者查询有关它的一些信息,例如公开了哪些端口。
该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
Run Code Online (Sandbox Code Playgroud)
如果我们只想要容器 ID,因为我们要将其传递给另一个命令,例如docker exec,我们可以使用-q/ --quiet:
$ docker ps --filter "name=myapp" --filter "status=running" --quiet
91959ed76e77
Run Code Online (Sandbox Code Playgroud)
为了检查它是否正在运行,我们可以查看输出是否非空:
if [ -n "$(docker ps -f "name=myapp" -f "status=running" -q )" ]; then
echo "the container is running!"
fi
Run Code Online (Sandbox Code Playgroud)
或者,如果我们想要有关它的其他信息,--format:
$ docker ps -f "name=myapp" -f "status=running" --format "{{.Image}}"
foo/barbaz:latest
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4742 次 |
| 最近记录: |