关注分享主机优惠活动
国内外VPS云服务器

docker容器日志占用空间过大的问题及其解决方案(Docker容器日志)

Docker容器日志占用太多空间。

问题docker容器日志导致主机磁盘空间已满。

Docker logs -f container_name很费时费力,占用了大量空间。可以清理未使用的日志。

解决方案:找到Docker容器日志。

在linux上,容器日志一般存储在/var/lib/docker/containers/container _ id/下。检查每个日志文件大小的脚本docker_log_size.sh。内容如下:

#!/bin/sh echo“= = = = = = = docker containers日志文件大小= = = = = = = = =“log = $(find/var/lib/docker/containers/-name * -JSON . log)For log in $ logs do ls-LH $ log done # chmod+xDocker _ log _ size . sh #。/docker _ log _ size.sh清理docker容器日志(治标)。

如果docker容器正在运行,在通过rm -rf删除日志后,您会发现磁盘空间并没有通过DF -H释放。

原因是在Linux或Unix系统中,通过rm -rf或文件管理器删除文件将取消与文件系统目录结构的链接。

如果文件是打开的(有一个进程正在使用),那么该进程仍然可以读取该文件,并且磁盘空间将始终被占用。正确的姿势是cat/dev/null》* -JSON . log,当然也可以通过rm -rf删除并重启docker。

接下来,提供一个日志清理脚本clean_docker_log.sh,如下所示:

#!/bin/sh echo“= = = = = = =开始清理docker容器logs = = = = = = = = =“logs = $(find/var/lib/docker/containers/-name * -JSON . log)for log in $ logs do echo“clean logs:$ log“cat/dev/null & gt;$ log done echo“= = = = = = = End clean docker容器日志= = = = =“# chmod+xclean _ docker _ log . sh #。/clean _ docker _ log.sh然而,随着时间的推移,容器日志会像杂草一样卷土重来。

设置Docker容器日志大小(永久修复)

为容器服务设置最大日志大小。

使用上述方法,日志文件迟早会恢复。

为了从根本上解决问题,有必要限制容器服务的最大日志大小。

这是通过配置容器docker-compose的max-size选项来实现的。

Nginx:image:Nginx:1 . 12 . 1 restart:always logging:driver:“JSON -file”options:max -size:“5g”重启Nginx容器后,其日志文件大小限制为5GB,因此无需担心。

全局设置

创建/etc /etc/docker/daemon.json如果有,则不需要创建它。添加log-dirver和log-opts参数。示例如下:

# vim/etc/docker/daemon . JSON {“log -driver“:“JSON -file“、“log -opts“:{“max -size“:“500m“、“max -file“:“3“} } max -size = 500。Max-file=3,这意味着一个容器有三个日志,即id+。json、id+1.json和id+2 . JSON .//重新启动docker守护进程# systemctldaemon -reload # systemctlrestartdocker注意:设置的日志大小仅对新创建的容器有效。

Docker容器日志清理问题:

Docker容器长时间运行,如果程序有大量打印,日志会不断增加,导致主机的磁盘空间被占满。

根除docker容器的方法是限制容器日志文件的大小和数量。

通过配置max-log来限制日志文件的大小,max-file参数限制日志文件的数量。

使用docker-compose.yml文件部署,限制单个容器docker -rate:image:python:3 . 9 . 5 container _ name:docker -rate restart:always logging:options:max -大小:“5g”max -文件:“1”卷数:- /var/share:/share命令:bash -c“python/share/run . py”环境:版本:1

修改docker配置文件,它将在全局生效vim/etc/docker/daemon . JSON {“log-opts“:{“max-size“:“500m““max-file“:“3“} }

总结以上个人经验,希望能给你一个参考,也希望你能支持主机频道zhujipindao。更多内容。

未经允许不得转载:主机频道 » docker容器日志占用空间过大的问题及其解决方案(Docker容器日志)

评论 抢沙发

评论前必须登录!