docker删除日志文件

背景:今天发现linux的磁盘空间不足,通过

df -h

查看。

通过

du - sh * 

查看详细文件大小,发现docker目录下占用的文件大小最大。

我就猜测是日志文件太大了,然后找到/var/lib/docker/containers/目录下的某个容器id。

进入目录,使用命令

cat /dev/null > *-json.log

清楚日志。即可。

注意,不可使用rm命令,这样需要重启容器,因为即使删除了这个文件,如果这个文件还有进程打开着他,磁盘内存就不会小。

谢谢大家。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker 日志容器产生的标准输出和标准错误输出,它们被 Docker 容器引擎捕获并定向到一个特殊的文件中,该文件位于 Docker 宿主机上的 /var/lib/docker/containers/[CONTAINER_ID]/[CONTAINER_ID]-json.log 路径下。随着时间的推移,日志文件会变得越来越大,因此需要采取措施来限制文件大小并在必要时进行轮换。这就是 logrotate 工具的作用。 logrotate 是一个用于轮换日志文件的工具,它可以根据一组预定义的规则定期轮换日志文件,并将旧文件备份、压缩或删除,以便节省磁盘空间和保留历史记录。在 Docker 宿主机上,可以通过配置 logrotate 来管理 Docker 容器日志。 要启用 Docker 日志的轮换,需要在 Docker 宿主机上创建一个 logrotate 配置文件,并将其放置在 /etc/logrotate.d 目录中。该文件应指定要轮换的日志文件、轮换频率、备份和压缩选项等。以下是一个示例配置文件: ``` /var/lib/docker/containers/*/*.log { rotate 7 daily compress delaycompress missingok notifempty copytruncate } ``` 该配置文件将轮换 Docker 容器日志,将日志文件最多保留 7 个备份,每天轮换一次,启用压缩,并保留最新的空文件。它还使用 copytruncate 选项来避免在轮换期间中断日志流。 完成配置后,可以手动运行 logrotate 命令来轮换 Docker 日志,也可以将其添加到定时任务中以自动运行。例如,可以将以下行添加到 /etc/crontab 文件中,以每天凌晨 3 点运行 logrotate: ``` 0 3 * * * root /usr/sbin/logrotate /etc/logrotate.d/docker ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值