What is the authoritative list of Docker Run exit

2019-01-22 18:01发布

问题:

Apologies if this has been asked, but nowhere in the Docker documentation can I find an authoritative list of exit codes (also called exit status). Surprising! I see suggestions about making it consistent, but no docs on docker.com.

Does anyone know where the exit codes can be found?

回答1:

For Docker >= 1.10 see this PR, which follows standard chroot exit codes:

  • 125: docker run itself fails
  • 126: contained command cannot be invoked
  • 127: if contained command cannot be found
  • 128 + n Fatal error signal n:
    • 130 = (128+2) Container terminated by Control-C
    • 137 = (128+9) Container received a SIGKILL
    • 143 = (128+15) Container received a SIGTERM

Check the man page of signal for the full list (on cmd type man signal or check online e.g. signal).

Check Docker documentation for more information about the current version.



回答2:

Normally it will be the exit status of the process, so it's application dependent i.e:

$ docker run debian sh -c "exit 5;"
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
7fcc37778df0        debian              "sh -c 'exit 5;'"   4 seconds ago       Exited (5) 3 seconds ago                       reverent_einstein   

But in certain cases Docker itself can return an exit code:

  • 125 if the Docker daemon has an error (e.g. a wrong flag is provided)
  • 126 if the container command can't be invoked (e.g. file isn't executable)
  • 127 if the container command can't be found (e.g. wrong path to binary)

https://docs.docker.com/engine/reference/run/#exit-status