kubernetes实用技巧之清理大日志及无效镜像

本文介绍了如何手动删除Docker的log文件、清理不必要的镜像和容器,以及如何通过调整`daemon.json`限制容器日志大小,包括使用json-file和journald驱动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.手动删除 docker 的部分 log 文件或可写层文件。通常删除 log 文件,示例如下

cd /var/lib/docker/containers
$ du -sh * # 找到比较大的目录
$ cd dda02c9a7491fa797ab730c1568ba06cba74cecd4e4a82e9d90d00fa11de743c
$ cat /dev/null > dda02c9a7491fa797ab730c1568ba06cba74cecd4e4a82e9d90d00fa11de743c-json.log.9 # 删除log文件 不要直接删除文件可以重置文件

2.清理docker镜像

journalctl --vacuum-size=20M #设置journal 日志最大为20M不保留不必要日志。
docker image prune -a --filter "until=24h"   # 清除超过创建时间超过24小时的镜像
docker container prune --filter "until=24h"  #清除掉所有停掉的容器,但24内创建的除外
docker volume prune --filter "label!=keep"  #除lable=keep外的volume外都清理掉(没有引用的volume)
docker system prune  #清理everything:images ,containers,networks一次性清理操作可以通过docker system prune来搞定

3.如何限制容器日志大小

在log-driver是json-file的模式下,容器的日志存放在/var/lib/docker/containers/下面,是以container_id-json.log文件存放
但缺省方式下,log-driver是设置成journald,交给系统的journal服务来进行管理

日志限制可以通过docker option来进行,但是先要把log-driver修改成json-file模式
#cat /etc/docker/daemon.json
OPTIONS='--log-driver=json-file --log-opt max-size=50m --log-opt max-file=5'

{
  "registry-mirrors": ["https://dockerhub.azk8s.cn", "https://docker.mirrors.ustc.edu.cn"], 
  "insecure-registries": ["127.0.0.1/8"],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值