我的script.sh:
#/bin/sh
docker run --name foo
((仅假设docker命令有效并且容器名称为foo。无法将实际命令公开。)
我有一个运行Docker容器的脚本。我想检查它是否成功运行,并在终端上echo
成功运行。
如何使用container name
完成此操作?我知道我必须使用类似docker inspect
的命令,但是当我尝试添加该命令时,该命令仅在我^C
我的脚本之后才会执行,这可能是因为docker已经执行了。
在this中,泊坞窗是通过其他脚本执行的,因此它不适用于我的用例。
s='^foo$'
[[ -n $(docker ps -qf "name=$s") ]] && echo "running" || echo "not running"
rc.sh
脚本,返回1作为退出代码(通常表示失败):#!/bin/sh
echo "Testscript failed, returning exitcode 1"
exit 1
它已在此Dockerfile
中复制并执行:
FROM alpine:3.7
COPY rc.sh .
ENTRYPOINT [ "sh", "rc.sh" ]
现在我们使用docker build -t rc-test .
构建此图像并执行一个短寿命容器:
$ docker run --rm rc-test
Testscript failed, returning exitcode 1
重击给我们$?
中的返回码:
$ echo $?
1
因此,我们看到容器失败了,可以在失败时简单地check them e.g. inside some bash script with an if-condition执行某些操作:
#!/bin/bash
docker run --rm rc-test
rc=$?
if [ $rc -ne 0 ]; then
echo "Docker container failed with rc ${rc}"
fi