图文详解 (Kubernetes)K8S 和 容器中的退出状态码含义和原因及解决方法。
什么是容器退出码
当容器终止时,容器引擎使用退出码来报告容器终止的原因。如果您是 Kubernetes 用户,容器故障是 pod 异常最常见的原因之一,了解容器退出码可以帮助您在排查时找到 pod 故障的根本原因。
以下是容器使用的最常见的退出码:
退出码 名称 含义
0 正常退出 开发者用来表明容器是正常退出
1 应用错误 容器因应用程序错误或镜像规范中的错误引用而停止
125 容器未能运行 docker run 命令没有执行成功
126 命令调用错误 无法调用镜像中指定的命令
127 找不到文件或目录 找不到镜像中指定的文件或目录
128 退出时使用的参数无效 退出是用无效的退出码触发的(有效代码是 0-255 之间的整数)
134 异常终止 (SIGABRT) 容器使用 abort() 函数自行中止
137 立即终止 (SIGKILL) 容器被操作系统通过 SIGKILL 信号终止
139 分段错误 (SIGSEGV) 容器试图访问未分配给它的内存并被终止
143 优雅终止 (SIGTERM) 容器收到即将终止的警告,然后终止
255 退出状态超出范围 容器退出,返回可接受范围之外的退出代码,表示错误原因未知
下面我们将解释如何在宿主机和 Kubernetes 中对失败的容器进行故障排除,并提供有关