清理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自动轮转后的过期日志文件

相关推荐
阿维的博客日记23 分钟前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI24 分钟前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding2 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
小小编程路2 小时前
C++ 多线程与并发
java·jvm·c++
AI视觉网奇2 小时前
linux 检索库 判断库是否支持
java·linux·服务器
她的男孩2 小时前
从零搭一个企业后台,为什么我把能力拆成 Starter 和 Plugin
java·后端·架构
RainCity2 小时前
Java Swing 自定义组件库分享(七)
java·笔记·后端
仙柒4152 小时前
Docker存储原理
运维·docker·容器
Sam_Deep_Thinking3 小时前
连锁门店的外卖订单平台对接
java·微服务·架构·系统架构
_遥远的救世主_3 小时前
从一次结果集密集型查询 OOM 看 Java 服务的稳定性架构治理
java·后端