02-docker运维-04-容器的日志清理(解决docker、docker-compose启动容器前台日志太大问题)

前言
docker启动容器必须有前台输出,为防止这些日志积累,我们需要清理或限制日志文件大小。本文提供了如下几个方案:
1)清空日志文件(临时解决方案)
2)单个容器限制日志大小
3)docker全局限制日志大小

1. 容器前台日志位置

日志位置:/var/lib/docker/containers/container_name/xxxx-json.log

查看如下:

[root@pre-server01 containers]# pwd
/var/lib/docker/containers
[root@pre-server01 containers]# du -sh *
14M 22d13bdf346647db3f60e46202b508353baf4e28c9dc7ce3c1ea22e9dd7700d7
7.3M 35f793ce044beb3b07dfcba6eb0e968ad81e152fb2a34df1d747e54c2b9c47d6
44K 552fed82b5b45f63f2c62ffb2c1ab9d4308132b4a112913eedb86d869f326792
117M 5a7e328bae074a7841583448e6259963ef6e2076bd34011b10a89fda603b3ec3
648K 6bf1cc99809501fe6c5133bbadd1a973b938425fd87a5ff98e3f4ab7d570589a
48K 9b5a05ff7f7654f22972da9de8f68df7bb0f912676e7a2986192ab10a98ac801
256K a64b3205e15594a36eef57a157900ab5379f5b94b97fb27001df50e38adf0c5d
907M c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a
44K def16294aad14cf44ff0b9b6a137e7b4535ba79ef7171904c6a086d325bfac6a
40K fd8a0279ff17e10b218404156c482e34a967f8681a27d0bf2e9bcfb1ff5304c2
[root@pre-server01 containers]# cd c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a
[root@pre-server01 c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a]# du -sh *
907M c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a-json.log
4.0K checkpoints
8.0K config.v2.json
4.0K hostconfig.json
4.0K hostname
4.0K hosts
4.0K mounts
4.0K resolv.conf
4.0K resolv.conf.hash

2. 临时解决

  • 执行命令
echo "" > c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a-json.log

说明:
echo一个空进去,不需要重启容器。
但如果你直接删除这个日志,容器并不会释放空间,需要重启容器。
这是一个临时解决方案,当然你也可以写定时任务清理,但这就不如限制容器日志大小友好了——根本解决方案见后边 3 、4 部分。

  • 效果演示
[root@pre-server01 c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 40G 11G 28G 28% /
[root@pre-server01 c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a]# echo "" > c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a-json.log
[root@pre-server01 c8c49aac99d86a501b8e2822d6db45d45cecc8781b6b0178a655c24f0ddc6d5a]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 40G 9.5G 29G 26% /

3. 单个容器

为单个容器设置容器日志大小

我这里使用的是docker-compose做编排和生命周期管理工具,docker-compose.yaml文件修改如下:

......
restart: always
# 添加以下部分
logging:
driver: "json-file"
options:
max-size: "5g"
......

注意:
需要down 然后再 up,restart是不会重读到这个配置的

4. docker 统一设置

/etc/docker/daemon.json 中添加如下内容

{
"log-driver":"json-file",
"log-opts": {"max-size":"5g", "max-file":"3"}
}

注意:需要重启docker

posted on   运维开发玄德公  阅读(86)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示