学习笔记九:docker容器日志问题

docker容器日志问题

背景

Docker 默认使用的是 json-file 日志驱动。日志会一直写,一直写,没有限制、没有轮转、没有清理!

日志默认位置:

python 复制代码
/var/lib/docker/containers/<container-id>/<container-id>-json.log

当你发现它时,可能已经:

  • 占了几十个 G
  • 吃满了磁盘
  • 服务都挂了!

如何处理日志问题

主要通过日志轮询方式处理。

python 复制代码
docker run -d \
  --name myapp \
  --log-driver json-file \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  myapp:latest
  • max-size=10m:单个日志文件最大 10MB
  • max-file=3:最多保留 3 个轮转文件(最多 30MB)

容器总日志控制在 30MB 内

修改 Docker 配置

该配置适用于所有容器,只对操作之后创建的容器生效!

编辑配置文件 /etc/docker/daemon.json

python 复制代码
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "5"
  }
}

重启 Docker 服务:

python 复制代码
systemctl restart docker

日志快速清理

仅推荐在磁盘告急时临时使用!

python 复制代码
find /var/lib/docker/containers -name *-json.log -exec truncate -s 0 {} \;
相关推荐
咸甜适中1 分钟前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十五)网格布局
笔记·学习·rust·egui
YBCarry_段松啓1 小时前
DeerFlow单服务器低成本公网访问
docker·开源·llm
OrionZephyr1 小时前
使用watchtower更新docker容器
docker
Duo1J3 小时前
【OpenGL】LearnOpenGL学习笔记15 - 面剔除
笔记·学习·图形渲染
C语言不精5 小时前
合宙780E开发学习-Lua语法学习
学习·junit·lua
努力买辣条9 小时前
基于 Docker 的高可用 WordPress 集群部署:分布式 Nginx + Keepalived、MySQL 主从复制与 ProxySQL 读写分离
分布式·nginx·docker
壹Y.11 小时前
非线性规划学习笔记
学习·数学建模
暗流者12 小时前
AAA 服务器与 RADIUS 协议笔记
运维·服务器·笔记
项目題供诗12 小时前
React学习(十二)
javascript·学习·react.js
艾莉丝努力练剑13 小时前
【C语言16天强化训练】从基础入门到进阶:Day 7
java·c语言·学习·算法