原文:docker容器日志管理(清理)


前言


在使用docker容器时候,其日志的管理是我们不得不考虑的事情。因为docker容器的日志文件会占据大量的磁盘空间。下面介绍的就是对docker容器日志的管理。



docker容器日志清理


docker容器的日志一般存放在/var/lib/docker/containers/下的container_id下,以json.log为结尾。

(每个容器会生成一个对应的container_id)


【1】查看所有docker容器日志的大小


find /var/lib/docker/containers/ -name *-json.log |xargs du -sh
  • 1



【2】清理Docker容器日志


docker容器运行时,使用rm的方式删除日志文件,是无用的,磁盘空间仍会被占用。

因为在Linux中,使用rm删除文件,只是从文件系统的目录结构上解除链接。如果有一个进程正在使用这个文件,进程将仍然可以读取该文件,磁盘空间也会一直被占用。

可以像处理tomcat的日志的方式对容器日志进行清空或切割。


<1>docker容器日志清理脚本(清理所有docker容器的日志)

clean_dockerlog.sh

#!/bin/sh 

logs=`find /var/lib/docker/containers/ -name *-json.log`  

for docker_log in $logs
do
echo " " > $docker_log
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11


<2>docker容器日志切割脚本(切割所有docker容器日志)

qie_dockerlog.sh

#!/bin/bash 

 logs=`find /var/lib/docker/containers/ -name *-json.log` 

for docker_log in $logs
do
y=`date "+%Y"`
m=`date "+%m"`
d=`date "+%d"`
cp $docker_log $docker_log/../`dockerlogs.$y_$m_$d`
echo " " > $docker_log
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

chmod +x /root/qie_dockerlog.sh
可以将脚本放入计划任务中,定期执行。
crontab -e
* * 3 * * /bin/bash /root/qie_dockerlog.sh
  • 1
  • 2
  • 3
  • 4


后记


实际上,对docker容器的日志及其他的管理,我们也可以使用docker compose来实现。它的优点是可以通过一个配置文件来管理多个Docker容器。这个由于内容比较多,就先放到以后再介绍了。

发布了187 篇原创文章 · 获赞 116 · 访问量 54万+

docker容器日志管理(清理)的更多相关文章

  1. docker容器日志管理

    docker容器日志分为两类:docker引擎日志(Docker本身运行的日志)和容器日志(各个容器内产生的日志) 一.Docker引擎日志: Centos系统下的docker引擎日志一般给syste ...

  2. Docker容器日志管理最佳实践

    目录 一 .Docker 引擎日志 二.容器日志 2.1.常用查看日志命令--docker logs 2.2 .Docker 日志 驱动 三. 生产环境中该如何储存容器中的日志 一.当是完全是标准输出 ...

  3. Docker 容器日志管理

    Docker 日志分为两类: Docker 引擎日志(也就是 dockerd 运行时的日志), 容器的日志,容器内的服务产生的日志. 一 .Docker 引擎日志 Docker 引擎日志一般是交给了 ...

  4. docker容器日志清理

    1.先查看磁盘空间 df -h 2.找到容器的containerId-json.log文件,并清理(治标不治本,log迟早还会大的) 查看各个容器的log文件大小 find /var/lib/dock ...

  5. Docker容器日志查看与清理(亲测有效)

    https://blog.csdn.net/yjk13703623757/article/details/80283729 1. 问题 docker容器日志导致主机磁盘空间满了.docker logs ...

  6. Docker容器日志查看与清理的方法

    Docker容器日志查看与清理的方法 Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器 ...

  7. Docker容器日志清理方案

    Docker容器在运行过程中会产生很多日志,久而久之,磁盘空间就被占满了,以下分享docker容器日志清理的几种方法 删除日志 在linux上,容器日志一般存放在 /var/lib/docker/co ...

  8. Docker 容器日志分析

    查看容器日志 先使用  docker run -it --rm -d -p 80:80 nginx:1.15.8-alpine 命令启动一个nginx容器.如果没有异常,会得到容器ID如  d2408 ...

  9. docker 容器日志集中 ELK + filebeat

    docker 容器日志集中 ELK ELK 基于 ovr 网络下 docker-compose.yaml version: '2' networks: network-test: external: ...

随机推荐

  1. beforeDestroy的使用

    beforeDestroy ---实例销毁之前调用 需求是这样的: important:下面截图数据都是测试数据 日期在我点击查询的时候要存储,刷新就读内存,但是我点击其他页面再进来的时候,这个内存要 ...

  2. iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)

    问题描述:每隔一段时间应用程序池就会自动停止. 再次启动就报错:服务无法在此时接受控制信息. (异常来自 HRESULT:0x80070425) 处理办法:同时按下Win+R,运行“services. ...

  3. 2019暑假Java学习笔记(一)

    目录 基础语法(上) HelloWorld 变量 常量 数据类型 整数 浮点数 char类型 boolean类型 String 计算字符串长度 字符串比较 字符串连接 charAt()方法 字符串常用 ...

  4. php中socket、fsockopen、curl、stream 区别

    socket 水泥.沙子,底层的东西fsockopen 水泥预制件,可以用来搭房子curl 毛坯房,自己装修一下就能住了 水泥.沙子不但可以修房子,还能修路.修桥.大型雕塑.socket也是,不但可以 ...

  5. 2019软工实践_Alpha(4/6)

    队名:955 组长博客:https://www.cnblogs.com/cclong/p/11882079.html 作业博客:https://edu.cnblogs.com/campus/fzu/S ...

  6. vue+elementui搭建后台管理界面(6登录和菜单权限控制[二])

    根据权限计算路由的代码 /** * 通过meta.role判断是否与当前用户权限匹配 * @param roles * @param route */ function hasRoles (roles ...

  7. Jenkins参数化构建--Git Parameter

    由于我们在测试过程中,可能需要在多个测试环境跑用例,这个时候就需要jenkins参数化了. Jenkins参数化一般常用的有两种方式:Choice和String Parameter两种 (1)Choi ...

  8. C#中 ??、 ?、 ?: 、?.、?[ ] 问号

    1. 可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=null; 编译器就会报错.为了使值类型也 ...

  9. Spring cloud微服务安全实战-7-1章节概述

    前面的章节都是围绕这微服务的安全在讲一些东西,包括微服务本身api的安全.网关的安全.怎么去做安全中心,包括认证服务器,权限的服务.权限的设计,怎么来实现SSO.然后sentinel来实现统一的熔断, ...

  10. 转 Shell判断字符串包含关系的几种方法

    https://blog.csdn.net/rznice/article/details/71086839 Shell中判断字符串包含关系的方法: 1.通过grep来判断:12str1="a ...