Docker Run退出代码的权威列表是什么?

jee*_*sty 42 exitstatus docker

如果有人问过这个道歉,但在Docker文档中没有任何地方可以找到退出代码的权威列表(也称为退出状态).奇怪!我看到有关使其保持一致的建议,但在docker.com上没有文档.

有谁知道可以找到退出代码的位置?

Tom*_*art 62

对于Docker> = 1.10,请参阅此PR,它遵循标准chroot退出代码:

  • 125:docker run本身失败了
  • 126:无法调用contains命令
  • 127:如果无法找到包含的命令
  • 128 + n致命错误信号n:
    • 130= (128+2)由Control-C终止的容器
    • 137= (128+9)容器收到了SIGKILL
    • 143= (128+15)容器收到了SIGTERM

检查手册页以signal获取完整列表(在cmd类型上man signal或在线检查,例如信号).

有关当前版本的更多信息,请查看Docker文档.

  • 有了那个 PR,文档也更新了:https://docs.docker.com/engine/reference/run/#/exit-status (2认同)

Adr*_*uat 13

通常它将是进程的退出状态,因此它依赖于应用程序,即:

$ 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   
Run Code Online (Sandbox Code Playgroud)

但在某些情况下,Docker本身可以返回退出代码:

  • 125如果Docker守护程序有错误(例如提供了错误的标志)
  • 126如果无法调用容器命令(例如文件不可执行)
  • 127如果找不到容器命令(例如错误的二进制路径)

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