首页 > 其他分享 >Docker运维之容器的日志清理

Docker运维之容器的日志清理

时间:2023-02-26 14:58:16浏览次数:39  
标签:容器 log 运维 -- json Docker docker 日志

在容器运行的过程中,通常会产生大量的日志,尤其是应用程序本身记录了info级别的日志时候,程序的标准输出记录到容器的日志。这样会占用大量的磁盘空间,严重者导致IO异常,最终服务会宕机。

方案一:定期手动清除容器日志文件

1、日志文件位置

Docker 容器日志存储在 /var/lib/docker/,文件格式是json格式,并通过容器ID进行区分。存储路径如下:

/var/lib/docker/containers/ID/ID-json.log

du -d1 -h /var/lib/docker/containers | sort -h

2、查看日志

 

#容器命令
docker logs -f 容器ID
#滚动查看最后20行,并现实时间戳。
docker-compose logs -f -t --tail=20
#按照开始时间、结束时间查看容器日志:查看 MySQL容器最近20分钟到最近10分钟内的日志信息,命令如下:
docker logs --since="20m" --until="10m" MySQL
#说明:--since 传入开始时间,--until 传入结束时间。
#跟踪日志输出:例如,查看 MySQL容器最近20分钟以后实时的日志信息(显示时间戳),命令如下:
docker logs -f --since="20m" -t  MySQL
#说明:-f 或者 --follow 表示跟踪日志输出。
#docker attach 容器名称(实时查看,但是CTRL+C强制退出以后也会影响容器的进程,导致强制退出),
#设置 docker attach --sign-proxy=false 容器名称(实时查看日志内容)

3、下载日志

docker logs +你需要添加的额外参数 + 容器id >文件名称

然后查看这个文件就可以了,也可以通过ftp协议下载到本地

4、找到容器的containerId-json.log文件

#查看各个容器的log文件大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -sh

5、执行清理

cat /dev/null > /var/lib/docker/containers/ \
dfe25896671f0def031c5ffeb12dd335f7f54212c6ca5d3aca1c3f50b5e1eec4 \
/dfe25896671f0def031c5ffeb12dd335f7f54212c6ca5d3aca1c3f50b5e1eec4-json.log

方案二:设置Docker容器日志大小(治本)

  设置一个容器服务的日志大小上限,一般对新建容器有效。

全局设置
新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:

# vim /etc/docker/daemon.json

{
    "log-driver":"json-file",
    "log-opts":{
        "max-size" :"50m","max-file":"1"
    }
}

max-size=50m,意味着一个容器日志大小上限是50M,max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

// 重启docker守护进程

# systemctl daemon-reload

# systemctl restart docker

标签:容器,log,运维,--,json,Docker,docker,日志
From: https://www.cnblogs.com/ossbar/p/17156695.html

相关文章

  • Mysql中关于查询日志的配置详解
    查询日志MySQL中的查询日志保存在文本文件中,能够记录MySQL中的所有数据操作。开启查询日志MySQL默认情况下没有开启查询日志,如果需要开启查询日志,则需要在​​my.cnf​​​......
  • 麒麟 v10 x86 安装 docker 和 docker-compose
    安装docker在docker官网查看最新的docker版本https://download.docker.com/linux/static/stable/x86_64/下载离线包wgethttps://download.docker.com/linux/sta......
  • Docker安装及基本操作
    Docker安装及基本操作Kubernetes入门实战课DockerKubernetesGeekTime安装常用操作全篇导图安装Ubuntu上使用以下命令安装Docker服务,并对当前用户授权使用docker......
  • gorm日志输出到文件
    日志原理分析gorm手册上写着,如果需要自定义logger,则需要实现如下接口:typeInterfaceinterface{LogMode(LogLevel)InterfaceInfo(context.Context,string,......
  • 部署logstash收集daemonset filebeat发过去的kafka日志
    实现:部署如下图红框位置logstash架构:主机:10.0.7.56部署logstashyum-yinstalljava-1.8.0-openjdkyum-yinstallhttps://mirror.tuna.tsinghua.edu.cn/elasticstack/7......
  • Log4j2日志框架
    1.引入依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.......
  • 一、Docker简介
    官方定义docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux、windows操作系统的机器上,也可以实现虚拟......
  • Docker安装及基本使用
    一、安装Docker(ubuntu)卸载旧版本(可选)sudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc添加Docker的官方GPG密钥curl-fsSLhttps://mirrors.ustc.......
  • Docker CLI docker buildx 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Doc......
  • MYSQL的索引、并发控制、各种事务介绍以及日志管理
    今天分享的是mysql数据库中的索引、并发控制、各种事务介绍以及日志管理,在学习过程中对这些内容的理解INDEX索引索引介绍索引:是排序的快速查找的特殊数据结构,定义作为查找......