我在一個機頂盒的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