news 2026/6/6 23:49:28

Docker 日志把磁盘写满怎么办?json-file 限制和清理方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 日志把磁盘写满怎么办?json-file 限制和清理方案

Docker 日志把磁盘写满怎么办?json-file 限制和清理方案

分类:运维知识

磁盘突然 100%,一查发现不是数据库,也不是上传文件,而是某个容器的 json 日志写了几十 G。这种问题很常见,而且会拖垮整台机器。本文给出临时止血、长期限制和排查顺序。

摘要:适合 Docker 服务多、日志增长快的服务器,读完能设置日志大小上限。

适合场景和不适合场景

适合:

  • 一台机器跑多个 Compose 项目
  • 容器日志经常刷屏
  • 需要避免磁盘被单个服务写满

不适合:

  • 需要集中日志审计的平台
  • 日志必须长期完整保留的合规场景
  • 已经使用 Loki/ELK 的成熟环境

这一步要先讲清楚,是因为很多服务器教程只告诉你“怎么装”,却不告诉你“该不该装”。如果场景不匹配,后面配置写得再漂亮,也只是把问题推迟到上线之后。

配置和成本怎么取舍

日志治理不吃配置,1 核 2G 都能做。关键是提前限制,而不是等磁盘满了再删。系统盘小于 40G 的服务器尤其要设置 Docker log opts。

我会把 Docker 日志治理 放在雨云服务器 rainyun-com的 云服务器上,处理多容器日志轮转几乎没有额外压力。注册填优惠码2026off领 5折,这类配置更适合先稳定跑起来,再按真实负载升级。

准备工作

  1. 准备一台干净的 Ubuntu 22.04 或 Debian 12 服务器,先确认 SSH、时间同步和防火墙状态。
  2. 规划目录:/opt/docker-logs-fill-disk-20260601。配置、数据、备份脚本都放在同一主题目录下,后面迁移更省事。
  3. 根据主题放行端口:local。游戏和网络服务尤其要分清 TCP/UDP。
  4. 先用测试数据跑通,再导入正式数据或邀请其他人使用。

核心配置

下面配置用于说明关键项,发布前要按当前官方文档确认镜像版本、环境变量和端口。

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

怎么确认真的可用

执行docker inspect 容器名 --format {{.LogPath}}找日志文件,再用du -h看大小。设置后新日志应按 max-size 轮转。

验证时不要只看进程是否存在,至少完成一次真实动作:游戏服要让外部玩家连接,应用要登录并写入一条数据,运维项要确认状态变化真的生效。这样能提前发现端口、权限、反代和路径问题。

踩坑清单

不要直接删除正在被 Docker 占用的 json 日志文件后就以为完事。更稳妥是 truncate 清空,随后设置 daemon.json 并重启 Docker。

排查建议按这个顺序来:

  1. 看日志里第一条明确错误,不要只看最后一屏。
  2. 查端口监听和云安全组,确认协议没有写错。
  3. 检查数据目录权限,尤其是容器用户和宿主机目录映射。
  4. 回滚到上一个能工作的配置,再逐项恢复新改动。

备份、升级和迁移

日志通常不需要全量备份,但关键业务日志应发送到独立日志系统,不要只留在容器本机。

维护时建议保留一份“最小恢复说明”:需要哪些文件、恢复命令是什么、域名和端口在哪里改。等真正出问题时,人通常没那么冷静,清单比记忆可靠。

总结

Docker 日志治理是低成本高收益的运维动作,越早做越不容易遇到磁盘满的深夜事故。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 23:48:23

数据自主权实践:开源工具实现微信聊天记录永久保存与智能分析

数据自主权实践:开源工具实现微信聊天记录永久保存与智能分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/w…

作者头像 李华
网站建设 2026/6/6 23:44:38

90+图片格式兼容性挑战?ImageGlass让你告别格式不支持的烦恼

90图片格式兼容性挑战?ImageGlass让你告别格式不支持的烦恼 【免费下载链接】ImageGlass 🏞 A fast, open-source, modern image viewer for 90 formats – including WEBP, GIF, SVG, AVIF, JXL, HEIC and more – built for smooth browsing across Wi…

作者头像 李华
网站建设 2026/6/6 23:42:55

如何远程备份MySQL binlog

以前备份binlog时,都是先在本地进行备份压缩,然后发送到远程服务器中。但是这其中还是有一定风险的,因为日志的备份都是周期性的,如果在某个周期中,服务器宕机了,硬盘损坏了,就可能导致这段时间…

作者头像 李华