学习笔记九: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 {} \;
相关推荐
灰太狼大王灬23 分钟前
Go 项目从开发到部署笔记
开发语言·笔记·golang
聪明的笨猪猪1 小时前
Java “线程池(1)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
csgo打的菜又爱玩1 小时前
Vue 学习与实践大纲(后端视角)
前端·学习
kfepiza1 小时前
`modprobe`命令 与 `KVM`模块 笔记251006
linux·笔记
charlie1145141912 小时前
理解C++20的革命特性——协程引用之——利用协程做一个迷你的Echo Server
网络·学习·socket·c++20·协程·epoll·raii
Yupureki2 小时前
从零开始的C++学习生活 4:类和对象(下)
c语言·数据结构·c++·学习
数智顾问2 小时前
探索 Docker/K8s 部署 MySQL 的创新实践与优化技巧——高可用与性能调优进阶
docker
MAR-Sky2 小时前
单片机学习中的一些简单总结
单片机·嵌入式硬件·学习
Dream_言十2 小时前
光全息|OAM-旋转双维度复用全息
神经网络·学习·dnn·论文笔记
小秋学嵌入式-不读研版2 小时前
C56-字符串拷贝函数strcpy与strnpy
c语言·开发语言·笔记