清理HiNas(海纳斯) Docker日志并限制日志大小
我在一个机顶盒的HiNas系统上跑Octoprint的docker版本,每隔一段时间盒子空间就被占完了,运行df -h
之后,显示/dev/root
Use 100%
。
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,建议我执行如下命令:
sudo find /var/lib/docker/containers -name "*.log" -exec truncate -s 0 {} \;
然后空间就腾出来了3.1个G:
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
添加如下内容:
"log-driver": "json-file","log-opts": {"max-size": "50m","max-file": "2"}
验证与维护
- 检查配置生效状态
bashCopy Code docker info | grep -i log # 查看全局配置 docker inspect <容器ID> | grep LogConfig # 查看容器级配置
- 定期清理残留日志
添加定时任务(crontab -e
):
此操作清除已被Docker自动轮转后的过期日志文件bashCopy Code # 每周日凌晨清理历史日志 0 0 * * 0 find /var/lib/docker/containers -name "*.log.*" -delete