美文网首页
docker | 定时清理docker容器日志

docker | 定时清理docker容器日志

作者: 炒面Z | 来源:发表于2020-08-18 16:43 被阅读0次

场景:
docker 容器启用一段时间之后日志会逐渐累积,越来越臃肿,可能高达十几G,我们需要定期自动清理此容器日志

1. 以下两个shell脚本可以查看和清理所有docker 容器日志

  • docker_log_size.sh 查所有容器日志大小脚本
#!/bin/sh
echo "======== docker containers logs file size ========"  
logs=$(find /var/lib/docker/containers/ -name *-json.log)  
for log in $logs  
        do  
             ls -lh $log   
        done 
  • 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 ========"  

2. 脚本人工执行测试

  • 查看日志大小
root@iZbp178t3hp8rsxpmyzfe2Z:/opt/docker-sh# ./docker_log_size.sh 
======== docker containers logs file size ========
-rw-r----- 1 root root 4.3G Aug 18 16:14 /var/lib/docker/containers/c4e04562d33f1898eb1dd3d49ddd5a90dc3b989a3efca110bd44893829fc036c/c4e04562d33f1898eb1dd3d49ddd5a90dc3b989a3efca110bd44893829fc036c-json.log
-rw-r----- 1 root root 292K May  7 18:30 /var/lib/docker/containers/9a5c76f683da95551377ac4f0f60f58d0df1fcfc5f12c25cff2811afb194b632/9a5c76f683da95551377ac4f0f60f58d0df1fcfc5f12c25cff2811afb194b632-json.log
-rw-r----- 1 root root 130M Aug 18 16:25 /var/lib/docker/containers/6759d405990d2d881c5af440e2f25715a48e8c9acaf44af4d51baeb6e15eca08/6759d405990d2d881c5af440e2f25715a48e8c9acaf44af4d51baeb6e15eca08-json.log
-rw-r----- 1 root root 58K Apr 21 14:53 /var/lib/docker/containers/cd11f02c3b7ba141e2874ececa31814a0c2cb5442169a0cd28c85b0aad254d9c/cd11f02c3b7ba141e2874ececa31814a0c2cb5442169a0cd28c85b0aad254d9c-json.log

  • 清理所有日志
root@iZbp178t3hp8rsxpmyzfe1Z:/opt/docker-sh# ./clean_docker_log.sh 
======== start clean docker containers logs ========
clean logs : /var/lib/docker/containers/13487e209673f8e3563bfcac486d0bcf8bc47a7ceb13e63967c4d69adf48bf1b/13487e209673f8e3563bfcac486d0bcf8bc47a7ceb13e63967c4d69adf48bf1b-json.log
clean logs : /var/lib/docker/containers/02f4a2ec4dce7c6ed4e53448fd5fb3277b045d5727c74a0eba28779647a3a673/02f4a2ec4dce7c6ed4e53448fd5fb3277b045d5727c74a0eba28779647a3a673-json.log
clean logs : /var/lib/docker/containers/837fa488089ba2e5c89d61a7eaf5c677ce2a239a7b13034bc17dee1ba07b20b1/837fa488089ba2e5c89d61a7eaf5c677ce2a239a7b13034bc17dee1ba07b20b1-json.log
======== end clean docker containers logs ========

3. crontab 定期清理日志

使用linux的crontab命令每天晚上2点定期执行脚本清空容器日志

0 0 2 * * ? /opt/docker-sh/clean_docker_log.sh

1. 先查看定期命令,是否已存在相当指令
root@iZbp178t3hp8rsxpmyzfe1Z:/opt/docker-sh# crontab -l
root@iZbp178t3hp8rsxpmyzfe1Z:/opt/docker-sh# 

2. 新增指令,保存指令:   0 0 2 * * ?  /opt/docker-sh/clean_docker_log.sh
root@iZbp178t3hp8rsxpmyzfe1Z:/opt/docker-sh# crontab -e

docker exec -u root -it grafana sh 用root权限进入容器内部

相关文章

  • docker 容器日志清理方案

    本文为转载,原文:docker 容器日志清理方案 docker容器日志清理方案 找出容器日志 在linux上,容器...

  • Docker容器日志清理

    docker容器导致主机磁盘空间满了 如何清理Docker容器日志? 如何找出docker容器日志文件 容器日志一...

  • Docker容器日志清理

    docker容器导致主机磁盘空间满了 如何清理Docker容器日志? 如何找出docker容器日志文件 容器日志一...

  • docker容器日志清理

    如何清理Docker容器日志? 如何找出docker容器日志文件容器日志一般存放在/var/lib/docker下...

  • docker | 定时清理docker容器日志

    场景:docker 容器启用一段时间之后日志会逐渐累积,越来越臃肿,可能高达十几G,我们需要定期自动清理此容器日志...

  • 【docker】Docker容器清理

    Docker容器清理 如:部署太频繁,很多无用的images没有删除掉 如:docker容器,某些服务写了很多日志...

  • docker logs 使用笔记

    docker日志类型分为docker自身运行的Daemon日志内容和docker容器日志内容类型,docker打印...

  • 清理docker日志、镜像

    docker默认容器日志文件位置/var/lib/docker/containers/docker默认容器存储和镜...

  • docker

    docker 镜像重命名# 如何找出docker容器日志文件 容器日志一般存放在/var/lib/docker下面...

  • docker使用技巧记录

    随笔记录,不定时更新 安装docker 容器相关 删除所有容器docker rm $(docker contain...

网友评论

      本文标题:docker | 定时清理docker容器日志

      本文链接:https://www.haomeiwen.com/subject/agmidktx.html