本篇内容介绍了“如何配置日志驱动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在 Docker 中,由多种方式存储应用程序日志,这些存储日志的方式被称为“日志驱动(Logging Driver)”。
它具有多种类型日志驱动,例如 none、local、json-file 等等,还可以实现自己的日志驱动。详细内容可参考官方「Supported logging drivers」与「Use a logging driver plugin」文档。
本笔记内容是对官方 19.03/Configure logging drivers 文档的学习与整理,详细内容请参考官方文档。
默认为 json-file 日志驱动,但是可以修改。
修改 /etc/docker/daemon.json 配置文件(示例):
{ "log-driver": "syslog", "log-opts": { "max-size": "500m", "max-file": "3", "labels": "production_status", "env": "os,customer" } }
log-opts 可用属性取决于日志驱动类型(log-driver),如果日志驱动支持其他选项,则可以进行添加。
也可以为特定容器配置日志驱动。在启动容器时,指定 --log-driver 选项:
docker run -it --log-driver none alpine ash
日志分发由两种模型:(1)阻塞;(2)非阻塞
“非阻塞”用于防止日志后端压力而导致应用程序崩溃。详细内容可参考官方文档。
可以使用-e或--label选项指定日志标签,在生成的日志中会附加某些标签。详细内容可参考官方文档。
企业版支持“双重日志”,即不管使用哪种日志驱动,都可以使用 docker logs 命令查看,但是社区版目前(01/08/2020)只支持查看 local、json-file、journald 这三种日志驱动,因此“我们”通常也只需要关注这三中。
读取轮转日志需要消耗磁盘与 CPU 使用
最大日志文件大小由Docker数据目录大小决定
如果使用 systemd 运行 Docker 服务,则日志由 systemd-journald 管理。使用 journalctl -u docker.service 查看 Docker 日志。
不同版本的 Docker,默认日志驱动不同。根据官方文档 19.03/Configure the default logging driver 所述:The default logging driver is json-file。
执行命令 docker info --format "{{.LoggingDriver}}" 查看当前默认的日志驱动。
执行命令 docker inspect -f '{{.HostConfig.LogConfig.Type}}' <CONTAINER> 查看容器的日志驱动。
/var/lib/docker/containers/<container_id>/<container_id>-json.log
如果容器使用 json-file 日志驱动,根据官方 19.03/JSON File logging driver 文档对 max-size 的描述,容器的日志不会论转,会一直增长。
通过在 Docker 18.09.1 测试,也是如此,日志文件 <container_id>-json.log 会不断增长,因此我们需要调整日志驱动参数。
“如何配置日志驱动”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。