服务器因 docker 日志占用空间不足
问题处理
启动项目提示找不到缓存文件,登录界面验证码刷不出来
登录服务器重启 docker 后台服务,报错
Error response from daemon: Cannot restart container my-serve: open /var/lib/docker/containers/9988633862afc28bc8764e39a8772f6376298e5d74479226e9a98c05b9e32ce4/hash3450992418: no space left on device
提示空间不足,查看磁盘空间,发现有一个磁盘完全满了
df -h
查看 docker 日志大小
du -sh /var/lib/docker/containers/*/*-json.log
发现有一个大日志文件占用了近一半的空间
查找是哪个容器生产的日志
# 上面输出的 /var/lib/docker/containers/<容器完整ID>/
docker ps -a --no-trunc | grep <CONTAINER_ID>
停止服务
docker stop the-log-serve
删除或清空日志文件
rm /var/lib/docker/containers/<CONTAINER_ID>/<CONTAINER_ID>-json.log
sudo truncate -s 0 /var/lib/docker/containers/0ad56ed2d47a.../*-json.log
启动服务
docker start the-log-serve
docker start my-serve
大日志轮转处理(待完善)
使用 Linux 自带的 logrotate 配置日志轮转
vi /etc/logrotate.d/docker-containers
写入以下内容:
/var/lib/docker/containers/*/*.log {
daily
rotate 7
# 保留最近7份旧日志
size 100M
compress
delaycompress
missingok
copytruncate
dateext
dateformat -%Y%m%d
notifempty
}
参考资料
本文来自博客园,作者:MGTPEZ,转载请注明原文链接:https://www.cnblogs.com/mgtpez/p/18857530

浙公网安备 33010602011771号