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

相关推荐
CRMEB系统商城6 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
BullSmall7 小时前
Anolis OS 8.10 完整安装 Docker CE(生产可用,解决 podman 冲突)
docker·容器·podman
keyipatience7 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
weixin_408099678 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
钱六两8 小时前
#3、SpringAI 接入deepSeek大模型(喂饭版)
java·spring boot·ai编程
null_179 小时前
IntelliJ IDEA 极致流畅配置方案:Ultra 9 285K + 64GB 内存实测
java·ide·intellij-idea
Herbert_hwt9 小时前
建立Java程序开发
java·开发语言
好好沉淀9 小时前
@ExcelIgnoreUnannotated 和 @AutoMapper 详解
java
愚公移码10 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
驰骋工作流10 小时前
流程引擎BPM设计之:流程消息
java·工作流引擎·bpm·jflow·ccflow