コンテナが終了すると、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()
を使用して、CまたはC++プログラム、またはPOSIX APIへのアクセスを提供する他のプログラミング言語で。bash
を含むほとんどのUnixシェルを意味します)のようなPOSIXでは、特別な$?
変数の直後にdocker run
の完了。docker run
を実行するために使用したProcess
の- Process.exitValue()
の値。Docker APIを使用している場合、終了ステータスへのアクセスを提供する必要があります。
ContainerExit.statusCode()
によって返されるContainerExit
オブジェクトのdocker.waitContainer()
の値] 。