一、前言
某次,某容器服务发现无法使用了,查看状态为restaring状态,后看是云主机重启了,导致本地的nfs-server未自动启动,导致关联的集群主机,远程挂载点无法使用,影响容器服务运行。故此,本文列举了当出现docker容器宕机后排查的思路,以供参考;另外应养成定期备份容器数据和镜像的习惯。
相关资源:容器构建最佳实践
二、FAQ及处理
2.1、Docker容器异常宕机排查处理
1、查看Docker的日志文件:
关联资源:shim reaped exception、Docker 容器常见故障排查、服务Crash后自动重启
journacl -x -n 100 -u docker #-f 实时滚动显示最新日志,-k查看内核的,-n 默认尾部的最新10行,--r 查看最新的日志
journalctl -b -0 #查看本次启动的
journalctl -b -1 #查看上一次启动的日志
journalctl --list-boots #列出系统启动日志
journalctl --since=“2024-08-01 00:22:02”
journalctl --since “30 min ago”
journalctl --since yesterday
journalctl --since “2024-08-01” --until “2024-08-13 13:40”
journalctl --since 08:30 --until “2 hour ago”
journalctl -u docker.service --since today #查看docker unit服务的日志,-u可多次使用显示多个unit日志
tail -1000 /var/log/messages |grep -Ei ' "out of memory"|"Kill process"|score|sacrifice'
grep -i 'error\|panic\|critical' /var/log/messages
grep "reboot|grep shutdown" /var/log/messages #确认是否Linux系统宕机了
dmesg | grep "error"
cat /var/log/messages|grep nr -i "shutting down"
sed -n '/Nov 15 04:50:01/,/Nov 15 10:51:54/p' /var/log/messages
cat /var/log/kern.log | grep "error"
cat /var/log/kern.log | grep "system reboot"
last reboot #查看系统最后重启的时间和原因
last -F |grep crash
last -x | grep reboot
dmesg | tail -N
dmesg | egrep -i -B100 'killed process' #查看'killed process’之前的100行内容
dmesg