Docker容器在云服务器上运行两周后意外终止

第一步 查看停止容器的状态

sudo docker ps -a (命令加上sudo的原因:官方文档)

得到报错信息:Exited (137) *** ago,此时确定大概率是OOM(out of memory),也就是该容器内存占用过高,被系统杀了。

第二步 查看详细状态

sudo docker inspect 容器ID

查看最关键的一个属性:"OOMKilled": false,

按理来说,137大概率是OOM,怎么可能是false呢?

好在OOM这种情况,系统是会记录的,可能docker没记上。

第三步 查看系统的OOM记录

dmesg | grep -E 'kill|oom|out of memory'

可以看到如下情况:

由此我们可以知道确实发生了OOM,并且就是容器中的程序

(查看系统日志的方法有很多,我的服务器是:UBuntu16.04LTS,这个没用:grep "Out of memory" /var/log/messages,可以用这个:egrep -i -r 'killed process' /var/log, 能看到OOM发生的时间,可以跟容器的停止时间做个对比,更好的确定是不是你的容器发生的OOM)

总结

当docker报错误代码137时,大概率就是内存溢出,不过docker自己可能没记录,要去查看系统日志

posted @ 2023-05-17 15:13  work006  阅读(218)  评论(0编辑  收藏  举报