从 docker 入口点命令获取退出代码

Dav*_*ein 7 bash docker

我有一个通过入口点指令运行脚本的 docker 容器。入口点脚本完成后容器将关闭。我需要从脚本中获取退出代码,以便在脚本失败时进行一些日志记录。现在我正在考虑这样的事情

docker run container/myContainer:latest

if [ $? != 0 ];
then
    do some stuff
fi
Run Code Online (Sandbox Code Playgroud)

这是实现这一目标的正确方法吗?具体来说,这将是 docker run 的退出代码还是我的入口点脚本的退出代码?

BMi*_*tch 7

是的,docker container run退出代码是您的入口点/cmd 的退出代码:

$ docker container run busybox /bin/sh -c "exit 5"

$ echo $?
5
Run Code Online (Sandbox Code Playgroud)

您还可以检查退出容器的状态:

$ docker container inspect --format '{{.State.ExitCode}}' \
    $(docker container ls -lq)
5
Run Code Online (Sandbox Code Playgroud)