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

相关推荐
chinesegf1 分钟前
清理docker残留镜像images
运维·docker·容器
TT哇5 分钟前
【实习】数字营销系统 银行经理端(interact_bank)前端 Vue 移动端页面的 UI 重构与优化
java·前端·vue.js·ui
Elieal15 分钟前
SpringBoot 数据层开发与企业信息管理系统实战
java·spring boot·后端
识君啊15 分钟前
MyBatis-Plus 逻辑删除导致唯一索引冲突的解决方案
java·spring boot·mybatis·mybatis-plus·唯一索引·逻辑删除
Coder_Boy_16 分钟前
Java开发者破局指南:跳出内卷,借AI赋能,搭建系统化知识体系
java·开发语言·人工智能·spring boot·后端·spring
QT.qtqtqtqtqt17 分钟前
SQL注入漏洞
java·服务器·sql·安全
小Pawn爷20 分钟前
2.Docker的存储
运维·docker·容器
独自破碎E21 分钟前
BISHI23 小红书推荐系统
java·后端·struts
xqqxqxxq23 分钟前
Java IO 核心:BufferedReader/BufferedWriter & PrintStream/PrintWriter 技术笔记
java·笔记·php
Aric_Jones24 分钟前
idea使用.env运行SpringBoot项目
java·spring boot·intellij-idea