清理HiNas(海纳斯) Docker日志并限制日志大小

我在一个机顶盒的HiNas系统上跑Octoprint的docker版本,每隔一段时间盒子空间就被占完了,运行df -h之后,显示/dev/root Use 100%

shell 复制代码
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.6G  6.6G     0 100% /
devtmpfs        466M     0  466M   0% /dev
tmpfs           466M     0  466M   0% /dev/shm
tmpfs            94M   12M   82M  13% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           466M     0  466M   0% /sys/fs/cgroup
tmpfs           466M     0  466M   0% /tmp
overlay         6.6G  6.6G     0 100% /var/lib/docker/overlay2/af39d08ee431ec651a5e65f7d9b0aaff9bf7b65b8c375b53c870436c1dd34e9c/merged
overlay         6.6G  6.6G     0 100% /var/lib/docker/overlay2/f0146795cc30d1d31d7d104c96327201a0ced5cb4d70e214ab654e629bf0f22c/merged
tmpfs            94M     0   94M   0% /run/user/0

问了deepseek,建议我执行如下命令:

shell 复制代码
sudo find /var/lib/docker/containers -name "*.log" -exec truncate -s 0 {} \;

然后空间就腾出来了3.1个G:

shell 复制代码
root@hi3798mv100:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.6G  3.2G  3.1G  51% /
devtmpfs        466M     0  466M   0% /dev
tmpfs           466M     0  466M   0% /dev/shm
tmpfs            94M  3.2M   90M   4% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           466M     0  466M   0% /sys/fs/cgroup
tmpfs           466M     0  466M   0% /tmp
overlay         6.6G  3.2G  3.1G  51% /var/lib/docker/overlay2/af39d08ee431ec651a5e65f7d9b0aaff9bf7b65b8c375b53c870436c1dd34e9c/merged
overlay         6.6G  3.2G  3.1G  51% /var/lib/docker/overlay2/f0146795cc30d1d31d7d104c96327201a0ced5cb4d70e214ab654e629bf0f22c/merged
tmpfs            94M     0   94M   0% /run/user/0

然后继续问如何限制日志大小,建议如下:
/etc/docker/daemon.json添加如下内容:

shell 复制代码
"log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "2"
  }

验证与维护

  1. 检查配置生效状态

    复制代码
    bashCopy Code
    docker info | grep -i log  # 查看全局配置
    docker inspect <容器ID> | grep LogConfig  # 查看容器级配置
  2. 定期清理残留日志
    添加定时任务(crontab -e):

    复制代码
    bashCopy Code
    # 每周日凌晨清理历史日志
    0 0 * * 0 find /var/lib/docker/containers -name "*.log.*" -delete

    此操作清除已被Docker自动轮转后的过期日志文件

相关推荐
·薯条大王7 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
ZJH__GO10 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆10 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
命运之光10 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
凤山老林10 小时前
Spring Boot @Async 线上实战:从默认配置到生产级线程池治理
java·spring boot·后端
marvelyu11 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
AI人工智能+电脑小能手12 小时前
大白话说Java设计模式-04-工厂方法模式(业务实战篇)
java·设计模式·工厂方法模式·架构设计·代码解耦
BUG指挥官12 小时前
Sa-Token和Spring Security对比
java·后端·spring
小当家.10512 小时前
深入理解 ReAct Agent:从原理到 Java 实战
java·react.js·agent·react·架构设计·agent设计
geminigoth13 小时前
Spring AI Alibaba 入门开发一(备份)
java·人工智能·spring