docker日志切割
如果在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
可以看到该容器日志正常轮转
补充知识:
可以通过文件:hostconfig.json,直接核查对应容器加载的日志切割相关配置信息:
已经创建的容器,验证日志文件切割
实验发现,针对已经创建的容器,即使进行容器重启,也不会加载到对应日志切割相关配置:
可以结合查看目标容器的hostconfig.json文件,可以看到:识别到的max-size 200m,该配置依然是之前的配置