2020-11-16 发现线上服务访问不了报以下错误
登录服务器df -h 查看docker的overlay已用%100
然后查找 linux 系统最大的10个文件
find / -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
找出是docker的*-json.log日志文件有好几个20几个G的
然后找到日志文件将*-json.log日志清空,命令 cat /dev/null > *****
du -sh * 查看当前目录下各文件占用大小
但是,这样清理之后,随着时间的推移,容器日志会像杂草一样,卷土重来。要从根本上解决问题,需要限制容器服务的日志大小上限。这个通过配置容器docker-compose的max-size选项来实现
解决方案
1.新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:
|
max-size=500m,意味着一个容器日志大小上限是500M,
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。
|
注意:设置的日志大小,只对新建的容器有效。
2.启动容器时,可以通过参数设置日志文件的大小、日志文件的格式。
docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash
Docker 命令
docker stats nginx 查看容器运行状态
运行容器的时候添加 docker run --name=nginx --cpus=1 -m=2g -d nginx 因为在运行容器的时候不指定资源限制的话,容器之间会竞争资源,甚至会影响服务的调用.
https://blog.csdn.net/weixin_32820767/article/details/81196250