- 使用 truncate 命令快速清理
# 清理单个容器日志
truncate -s 0 /var/lib/docker/containers/*/*-json.log
# 或者使用通配符批量清理
truncate -s 0 /var/lib/docker/containers/*/*.log
- 结合 find 命令批量清理
# 清理大于100M的日志文件
find /var/lib/docker/containers/ -name "*-json.log" -size +100M -delete
# 或者清理超过7天的日志
find /var/lib/docker/containers/ -name "*-json.log" -mtime +7 -delete
- 使用 Docker 命令清理
# 清理所有容器的日志
docker container prune
# 清理特定容器日志
docker logs --follow --until=0s <container_name>
- 配置 Docker 日志轮转
在 Docker 守护进程配置文件/etc/docker/daemon.json
中添加:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
- 脚本自动清理
#!/bin/bash
# 清理超过100M的日志文件
for log in $(find /var/lib/docker/containers/ -name "*-json.log" -size +100M); do
truncate -s 0 "$log"
done
注意事项:
- 清理日志前请先备份重要日志
- 建议使用 Docker 的日志轮转机制
- 对于生产环境,推荐使用集中式日志管理方案