解决:DockerContainerexitedwithcode137

更新时间:2023-05-05 17:05:59 阅读: 评论:0

解决:DockerContainerexitedwithcode137
说明:docker-compo up时,报了某Container exited with code 137… 我怀疑该容器被Linux进⾏OOMKille了
⼀、问题描述
服务器上发包,构建完镜像执⾏Up的时候,给我提⽰了个:Container exited with code 137 。
这⼜是靓⼥落泪的⼀⼩会⼉啊…
不过,看提⽰code 137,猜测是服务器内存不⾜,直接被Linux OOM killer(Out-Of-Memory killer)了。
获取镜像的元数据:docker inspect ContainerId
查看镜像的元数据,State中有个OOMKilled属性,为true则表⽰容器收到了SIGKILL信号,进程被杀掉了。
⼆、什么是OOM?
OOM全称 Out-of-Memory,是指操作系统的可⽤内存已经不⾜,且⽆法再分配新的内存出来给进程使⽤,导致系统⽆法继续⼯作。若不紧急处理,将会导致整个系统崩溃,所有进程均被杀死。
因此Linux OS为了保证内核系统层⾯的稳定运⾏,会根据⼀定算法规则,选出最优先占内存空间最⼤的进程进⾏杀死,进⽽释放出较多的内存空间,使系统程序继续稳定运⾏。这个机制就是OOM Killer机制。
三、解决⽅案
楼主遇到的是这种情况,所以释放了内存。再重新跑就好了。
查看存储:docker system df
删除所有unud镜像:docker system prune -a
当然还有⼀种情况是:还有内存,但oom-killer依旧把进程杀死了。
这种情况是low memory耗尽,内核使⽤low memory来跟踪所有的内存分配。如果low memory耗尽,不管high memory剩多少,oom-killer都会杀死进程,以保持系统的正常运⾏。

本文发布于:2023-05-05 17:05:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/857989.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:进程   系统   内存   镜像   情况   杀死   内存空间   信号
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图