Lors de la sortie d'un conteneur, docker ps -a
montre son code de sortie (faites défiler
$ 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
Comment puis-je obtenir le code de sortie numérique par programme, sans grep
- ing et cut
- source d'erreurs?
Utilisation docker inspect
avec des modèles:
$ docker inspect c2c769c4b9ef --format='{{.State.ExitCode}}'
1
Vous pouvez utiliser echo
:
$ docker run debian bash -c "exit 1"
$ echo $?
1
$ docker run debian bash -c "exit 0"
$ echo $?
0
état de sortie de docker run
est l'état de sortie de la commande contenue, sauf en cas de problème avec Docker lui-même (auquel cas l'état est 125) ou la commande contenue n'a pas pu être invoquée (auquel cas le statut est 126) ou ne peut pas être invoquée (auquel cas le statut est 127).
Par conséquent, lorsque vous exécutez docker run
En tant que processus enfant, vous pouvez récupérer l'état de sortie comme vous le feriez pour tout autre processus enfant:
waitpid()
.bash
), comme le contenu de la variable spéciale $?
immédiatement après achèvement d'un docker run
.Process.exitValue()
pour le Process
que vous aviez l'habitude de faire docker run
.Si vous utilisez une API Docker, elle devrait donner accès à l'état de sortie.
ContainerExit.statusCode()
de l'objet ContainerExit
retournée par docker.waitContainer()
.