Un contenedor muere con el código de salida 137. ¿Qué suele haber pasado?
Opciones
- Un error de sintaxis detuvo el contenedor al arrancar
- Recibió SIGKILL (128 + 9), a menudo del OOM killer al llegar al límite de memoria (Opción correcta)
- Un apagado normal pedido con
docker stop - Un timeout de red mientras descargaba su imagen
Respuesta
Recibió SIGKILL (128 + 9), muy a menudo del OOM killer al llegar al límite de memoria
Por qué
Los códigos de salida por encima de 128 significan 'matado por una señal': código = 128 + número de señal. 137 = 128 + 9, y la señal 9 es SIGKILL, que no se puede capturar.
La razón más común es que el contenedor usa más memoria que su límite, así que el OOM (out-of-memory) killer del kernel lo detiene.
Compruébalo con docker inspect (OOMKilled: true) o kubectl describe pod. 143 = SIGTERM, una petición normal de parada.
Recuerda
137 = matado (a menudo sin memoria). 143 = se le pidió parar.