当容器退出时,docker ps -a
显示其退出代码(滚动
$ docker run ubuntu bash -c "exit 1"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c2c769c4b9ef ubuntu "bash -c 'exit 1'" 6 seconds ago Exited (1) 3 seconds ago happy_fermat
如何以编程方式获取数字退出代码,而不会出现容易出错的grep
-ing和cut
-ing?
将docker inspect
与模板一起使用:
$ docker inspect c2c769c4b9ef --format='{{.State.ExitCode}}'
1
你可以使用echo
:
$ docker run debian bash -c "exit 1"
$ echo $?
1
$ docker run debian bash -c "exit 0"
$ echo $?
0
exit status of docker run
是包含命令的退出状态,除非Docker本身存在问题(在这种情况下状态为125)或者无法调用包含的命令(在这种情况下状态为126)或者不能调用(在这种情况下状态为127)。
因此,当您将docker run
作为子进程执行时,您可以像检索任何其他子进程一样检索退出状态:
waitpid()
访问POSIX API。bash
),作为$?
完成后的特殊docker run
变量的内容。Process.exitValue()
的Process
的docker run
值。如果您使用的是Docker API,则应提供对退出状态的访问权限。
ContainerExit.statusCode()
返回的ContainerExit
对象的docker.waitContainer()
的值。