处理过大的 docker 日志
1、发现时 docker 日志已经很大了,最方便的肯定还是直接重建容器,日志也就重新初始化了
2、如果不想重建容器,那就需要找到日志文件,一种是直接清空:
truncate -s 0 your_file.log
3、另一种是截取保留最新的日志部分(保留文件最后 1GB):
# 命令说明
# stat -c %s your_file.log:获取文件大小(单位:字节)。
#/ 1048576 - 1024:将字节转换为 MB 并减去 1024MB,作为 skip 起点。
# dd:从文件尾部 1GB 开始复制 1024 个 1MB 块,写回文件头。
# truncate:将文件大小截断为 1GB。
# 需要将命令中所有 your_file.log 改为实际的日志文件名
dd if=your_file.log of=your_file.log bs=1M skip=$(( $(stat -c %s your_file.log) / 1048576 - 1024 )) seek=0 count=1024 conv=notrunc && truncate -s 1G your_file.log
4、处理完当前问题 ,为了预防未来再次发生,可以限制日志大小(需重建容器)
单个容器配置:
# 在容器运行命令中添加
# 示例
docker run -d -p 80:80 -p 443:443 \
--log-opt max-size=1g \
--name nginx nginx
全局配置(仍然只对新建容器生效):
sudo vi /etc/docker/daemon.json
添加以下配置,保存并退出:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
参考:https://cn.linux-console.net/?p=34396
https://www.cnblogs.com/BillyLV/articles/12555451.html
https://chatgpt.com/
输了你,赢了世界又如何...

浙公网安备 33010602011771号