docker日志管理方案:轻松清理和配置容器日志


任务描述

在使用 Docker 容器时,日志的不断增长可能会占用大量磁盘空间,导致系统不稳定甚至宕机。本文将介绍两种有效的日志管理方案:一是手动定期清除容器日志,二是设置日志大小限制,从根本上解决问题。通过简单易懂的步骤,让你的 Docker 环境更加健康和高效,轻松应对日志带来的困扰!

方案一:定期手动清除容器日志文件

1、日志文件位置
Docker 容器日志存储在 /var/lib/docker/,文件格式是json格式,并通过容器ID进行区分。存储路径如下:

/var/lib/docker/containers/ID/ID-json.log

du -d1 -h /var/lib/docker/containers | sort -h

2、查看日志

#容器命令
docker logs -f 容器ID
#滚动查看最后20行,并现实时间戳。
docker-compose logs -f -t --tail=20
#按照开始时间、结束时间查看容器日志:查看 MySQL容器最近20分钟到最近10分钟内的日志信息,命令如下:
docker logs --since="20m" --until="10m" MySQL
#说明:--since 传入开始时间,--until 传入结束时间。
#跟踪日志输出:例如,查看 MySQL容器最近20分钟以后实时的日志信息(显示时间戳),命令如下:
docker logs -f --since="20m" -t  MySQL
#说明:-f 或者 --follow 表示跟踪日志输出。
#docker attach 容器名称(实时查看,但是CTRL+C强制退出以后也会影响容器的进程,导致强制退出),
#设置 docker attach --sign-proxy=false 容器名称(实时查看日志内容)

3、下载日志
docker logs +你需要添加的额外参数 + 容器id >文件名称

然后查看这个文件就可以了,也可以通过ftp协议下载到本地

4、找到容器的containerId-json.log文件

#查看各个容器的log文件大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -sh

5、执行清理

cat /dev/null > /var/lib/docker/containers/ \
dfe25896671f0def031c5ffeb12dd335f7f54212c6ca5d3aca1c3f50b5e1eec4 \
/dfe25896671f0def031c5ffeb12dd335f7f54212c6ca5d3aca1c3f50b5e1eec4-json.log

方案二:设置Docker容器日志大小(治本)

设置一个容器服务的日志大小上限,一般对新建容器有效。

全局设置
新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:
vim /etc/docker/daemon.json

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

max-size=50m,意味着一个容器日志大小上限是50M,max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

// 重启docker守护进程

systemctl daemon-reload
systemctl restart docker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值