docker-compose 退出代码的含义?

Posted

技术标签:

【中文标题】docker-compose 退出代码的含义?【英文标题】:Meaning of docker-compose exit code? 【发布时间】:2016-03-07 18:59:30 【问题描述】:

例如,如果我用kill 强制容器停止,然后docker-compose ps 检查我的容器,我将State 设为Exit 137。和docker-compose stop 我得到Exit 1/Exit 0

由于没有退出代码的文档,任何人都可以向我解释它的含义吗?

【问题讨论】:

【参考方案1】:

这与 docker 的关系不大,而与它所运行的系统有关。如果你看一下这个reserved exit codes 的表格,你可以看到这一行:

128+n   Fatal error signal "n"  kill -9 $PPID of script $? returns 137 (128 + 9)

与您提到的 137 相对应。它是 128 + 9 (SIGKILL),您可以在 signal(7) 手册页中看到。通常,0 表示干净退出,1 表示有问题,这两个对于程序员来说就足够了。然而,它们的范围可以是 1-255,包括上面提到的保留的。

这只是一个简短的答案,因为我不是该主题的专家,您可以在default exit code when process is terminated 上的这个 unix.stackexchange 线程上找到更多信息,或者也许这里有人可以给出比我更详尽的答案。

【讨论】:

感谢您的建议 :) 我现在得到了我需要的一切 很好的解释,【参考方案2】:

看来您可能内存不足。这是这里提到的 Linux 标准:http://tldp.org/LDP/abs/html/exitcodes.html


错误代码128:退出参数无效


错误代码 128+n : 致命错误信号 "n" kill -9 $PPID of script $?返回 137 (128 + 9)


Docker 中的错误 137 表示容器被“oom-killer”(内存不足)“杀死”。当容器中没有足够的内存来运行进程时,就会发生这种情况。

“OOM 杀手”是一个主动进程,当系统的内存水平过低时,它会通过杀死资源滥用进程为系统释放内存来拯救系统。

这里是a little more info

【讨论】:

以上是关于docker-compose 退出代码的含义?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Rider 调试使用 docker 容器和 docker-compose 构建的 .net 核心应用程序。容器退出代码 139

负退出代码的含义

Java 退出代码和含义

JVM退出代码10的含义

我怎样才能退出 do-while 循环?

how do you quit docker-compose up @ macOS?