彻底解决 Docker 日志过大问题

本贴最后更新于 1926 天前,其中的信息可能已经东海扬尘

docker 日志一般存储在 /var/lib/docker/containers/<container_id> 下,文件名为 <container_id>-json.log,docker 中的日志全部由这个文件负责记录,如果业务量大的话,这个文件大小增长会非常快,若在其他地方记录业务日志的话,那么这个 docker 日志可以控制它的体积。

方法一:

nginx: image: nginx:1.12.1 restart: always logging: driver: "json-file" options: max-size: "5g"

docker-compose.yml 官方介绍里是这么说的,限制日志大小为 5GB。不过当我实验的时候发现并不认 logging 这个参数,后来发现是 yml 文件中 version 的版本写的过低,这里推荐写 3 即可,如:

version: '3' services: redis: image: redis:5.0 restart: always container_name: IP20-redis-6378 environment: - TZ=Asia/Shanghai ports: - 6378:6378 volumes: - ./redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf logging: driver: "json-file" options: max-size: "5g"

补充:若想关闭 docker 中的日志,使之不生成 log 文件,则配置如下:

version: '3' services: redis: image: redis:5.0 restart: always container_name: IP20-redis-6378 environment: - TZ=Asia/Shanghai ports: - 6378:6378 volumes: - ./redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf logging: driver: "none"

或者在 docker run 命令中加上 -log-driver=none 参数即可

方法二:

/etc/docker/daemon.json 文件中添加关于日志的参数(无此文件的可以新建):

{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"], "log-driver": "json-file", "log-opts": { "max-size": "1m", "max-file": "1" } }

因为我在其他地方记录了业务日志,所以 docker 中的日志就尽量设置小一点,我设置了最大文件大小为 1MB,文件数量为 1 个。
设置之后重启 docker 服务:

systemctl daemon-reload systemctl restart docker

注意:设置的日志大小,只对新建的容器有效

看下实际效果:

[root@r-d-47 60084fbb27418505fc91c70b5ac866d96b6a3d8683dfd18ae161e9ee293e3451]# ls | xargs du -sh 960K 60084fbb27418505fc91c70b5ac866d96b6a3d8683dfd18ae161e9ee293e3451-json.log 0 checkpoints 8.0K config.v2.json 4.0K hostconfig.json 4.0K hostname 4.0K hosts 0 mounts 4.0K resolv.conf 4.0K resolv.conf.hash

参考资料:https://blog.csdn.net/yjk13703623757/article/details/80283729

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    494 引用 • 928 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone
    作者

    将 docker-compose.yml 的版本改成 3 即可

  • 其他回帖
  • windvibra

    ERROR: The Compose file './docker-compose.yaml' is invalid because:
    Unsupported config option for nginx: 'logging'

推荐标签 标签

  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 27 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 16 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 76 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 495 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖 • 1 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 7 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    21 引用 • 204 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 165 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 27 回帖 • 1 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9445 引用 • 43006 回帖 • 108 关注
  • OneNote
    1 引用 • 3 回帖
  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 3 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    57 引用 • 25 回帖 • 9 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 662 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1440 引用 • 10067 回帖 • 494 关注
  • sts
    2 引用 • 2 回帖 • 224 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 146 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 665 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 1 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    84 引用 • 324 回帖
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 2 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 5 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 592 关注