首页 > 其他分享 >docker容器日志清理

docker容器日志清理

时间:2023-01-24 14:32:12浏览次数:62  
标签:容器 log sh clean docker 日志


最近发现linux(Centos 7)虚拟机的空间不够了,想创建新的容器都失败。剩下不到100M。之前还有好几个G。然后每天不定期查看磁盘空间,发现不断被蚕食。今天比昨天就少了100M;然后下午比上午又少了50M。谁在吞噬服务器的硬盘空间?

docker。准确地说,是docker容器里跑的java程序,不断在产生日志。进入容器目录里查看,可以看到日志文件约800M。是一个日志文件,太夸张了。这个虚拟机上跑了好几个docker容器。

docker容器日志清理_日志文件


目前的解决办法是参照​​网上教程​​,制作一个脚本,手动运行,将docker容器上所有的日志都清零。下面是详细介绍,包括每日如何查看硬盘空间。

1、查看硬盘空间

df -Th

docker容器日志清理_docker容器日志_02


从中可知,消耗最多的是/dev/mapper/centos-root。其实就是操作系统的根目录。转到操作系统根目录,然后看哪些目录占空间最多

su
cd /
du -h -x --max-depth=1

docker容器日志清理_docker_03

2、根据昨天与今天查看硬盘空间占用情况的对比

可知是目录var在不断膨胀。

同理不断细化,可知是 /var/lib/docker 的问题。

3、不断深入

最后确认是每个容器内的日志惹的祸

docker容器日志清理_日志文件

4、制作一个sh文件,

名曰 clean_docker_log.sh,内容为:

#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"
# chmod +x clean_docker_log.sh
# ./clean_docker_log.sh

然后运行这个批处理文件,即可将所有的docker容器内的日志瞬间清零。不亦快哉。

5、运行这个批处理文件

sudo sh clean-docker-log.sh

6、小结

docker容器的日志,不是docker产生的。容器只是一个容器,它不搞这些东西。日志都是承载在容器里的应用自己产生的。

运行批处理文件,手动删除日志,治标不治本。韭菜割不尽,春风吹又生;千金散尽还复来,一行白鹭上西天。而且日志删掉,在开发环境可以,生产环境是应该至少保留一段时间的。教程推荐的做法是使用docker compose,可以设置日志最大尺寸。这个东东我目前还不熟悉,所以先不搞。

网上教程:
​​​Docker容器日志查看与清理​


标签:容器,log,sh,clean,docker,日志
From: https://blog.51cto.com/leftfist/6022298

相关文章

  • Docker 基础 - 1
    镜像获取镜像dockerpull查看镜像信息dockerimagesdockerinspect<imagesid>#获取镜像的详细信息搜寻镜像dockersearch删除镜像dockerrmi当一个镜像拥......
  • Docker安装PostgreSQL
    镜像地址:https://hub.docker.com/_/postgres1.拉取dockerpullpostgres2.创建dockerrun-d\-p5432:5432\--namepostgres\--restart=always......
  • Docker基础
    背景介绍Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙......
  • (19)go-micro微服务filebeat收集日志
    目录一Filebeat介绍二FileBeat基本组成三FileBeat工作原理四Filebeat如何记录文件状态:五Filebeat如何保证事件至少被输出一次六安装Filebeat七使用Filebeatfilebea......
  • 温习日志-6
    温习日志——2023年1月16日下午b站学习地址学习内容JS高阶总览JS的引擎和运行时间JS知名的引擎有Chrome的V8、火狐的spiderMonkey等等JS的引擎有调用栈和堆JS是......
  • 远程连接Docker上的Mysql失败的解决方案
    之前VMWare虚拟机CentOS7使用DHCP,导致只要重启操作系统,网卡IP地址就改变。于是把网卡修改为手工设定IP地址,结果导致远程连接mysql出现如下错误,花了很多时间还没有解决,最终偶......
  • docker运行pm2程序
    DockerfileFROMnode:16.14.2RUNmkdir/data/apps-pv\&&[email protected]\&&npm-gipm2WORKDIR/data/appsCOPY..RUNpnpminstall\&&pnpm......
  • Docker 部署 SpringBoot 项目
    Dockerfilehouse.jar为jar包名称/data为存放路径FROMlpicanco/java11-alpineMAINTAINERchenglong<[email protected]>VOLUME/tmpRUNmkdir/dataEXPOS......
  • 在Docker上拉取一个现成的SystemC环境
    SystemC是在C++通过库拓展的一个可用于硬件电路设计的语言Docker是一种类似虚拟机的技术,但比虚拟机更方便,将一种环境所需的最小配置打包成一个image后,便可以方便地使用WS......
  • Dubbo实现分布式日志链路追踪
    Dubbo实现分布式日志链路追踪技术场景在日常的开发、测试或运维的过程中,经常存在这样的场景,开发人员在代码中使用日志工具(log4j、slf4j)记录日志,比如请求ID、IP等,方便在线......