docker日志切割

小丫2年前技术文章2096

如果在docker部署前期没有规划好,例如:没有提前配置容器日志切割,那么在后期容器日志就会越来越大,当想要通过日志查看相关报错等信息的时候就会比较麻烦。

配置docker日志切割

在/etc/docker/daemon.json文件中,追加如下内容:

"log-driver": "json-file",
"log-opts": {
    "max-size": "1m", 单个json格式切割轮转阈值,日志文件达到该阈值之后,就会触发切割
    "max-file": "3"    允许保存的最大日志个数
    }

注意:但是该配置需要在容器启动之前就完成,如果是已经运行的容器是无法加载后来新增的配置的。


新创建容器,验证日志文件切割

新创建nginx测试容器:

docker run -itd --name=nginx-04 -p 6666:80 -v /etc/nginx-01/nginx.conf:/etc/nginx/nginx.conf nginx

配置nginx的请求日志输出到终端:

access_log  /dev/stdout  main;

针对目标nginx业务发起压测,使其往json日志中输出对应日志请求

打开postman,简单配置压测请求,并发5000

image.png

可以看到该容器日志正常轮转

image.png

补充知识:

可以通过文件:hostconfig.json,直接核查对应容器加载的日志切割相关配置信息:


已经创建的容器,验证日志文件切割


实验发现,针对已经创建的容器,即使进行容器重启,也不会加载到对应日志切割相关配置:

可以结合查看目标容器的hostconfig.json文件,可以看到:识别到的max-size 200m,该配置依然是之前的配置

image.png


相关文章

MySQL基本配置文件

MySQL基本配置文件

# 5.7  # mkdir /data/mysql57/{data,logs,run} -pv [client] port ...

lvm介绍和常用命令

lvm介绍和常用命令

在分区的时候,每个分区应该分多大是令人头疼的,而且随着长时间的运行,分区不管你分多大,都会被数据给占满。当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分...

Kubernetes 调度策略

1、资源调度创建一个新的 Pod 资源对象时,该 Pod 应该运行在哪个工作节点,由 Scheduler 调度器进行调度。Scheduler 是一个守护进程,其内部有很多调度算法。Pod 调度流程:当...

scylladb集群如何添加新数据中心

1、信息收集· 收集现有集群信息cat /etc/scylla/scylla.yaml | grep cluster_namecat /etc/scylla/scylla.yaml | grep se...

Ubuntu 网卡启动及配置

Ubuntu 网卡启动及配置

问题分析打开虚拟机后发现没有网卡网络。查看网卡信息sudo ip link set ens33 up1得到本机的所有网卡信息,例如我这边网卡为ens33启动网卡启动网卡后发现依然网卡没有IP地址。配置...

大数据基础之HDFS入门

大数据基础之HDFS入门

一、NameNode是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。二、NameNode的工作特点Namenode始终在内存中保存meteda...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。