码迷,mamicode.com
首页 > 其他好文 > 详细

docker 限制日志文件大小和数量

时间:2020-02-17 12:37:14      阅读:614      评论:0      收藏:0      [点我收藏+]

标签:大小   配置   没有   创建   路径   rest   数字   docker   mon   

最近使用docker 发现一个可怕的问题,那就是创建容器后,会把磁盘空间占满,太可恶了。

经过查阅网站,发现这个问题是可以避免的。

可怕的路径:/var/lib/docker/containers

原理:

docker 创建容器默认是生成一串数字,系统会为这串数字创建一个目录。里面有*json.log 日志文件,记录容器的日志。

如果不修改docker 日志配置文件,默认生成一个日志,这里举例改为100M ,保留三个文件。

首先生成一个*json.log 文件,日志大小到100M 后,系统会自动把 *json.log 文件,写入 *json.log.1里面

等到*json.log 文件 再次到 100M后,系统会自动把 *json.log 文件,写入 *json.log.1里面,而*json.log.1 文件写入 *json.log.2 里面。

依次类推

我这里有过测试,把其中一个 *json.log.2  文件删除,过一会会生成  *json.log.2  文件,如果只保留 *json.log.2  文件,把 *json.log.1 日志文件删除,系统会吧 *json.log.1 日志文件内容写入 *json.log.2 里面。

一、修改docker 日志的配置文件

  我这里修改的,日志大小100M,保留三个文件

vi /etc/docker/daemon.json
{"registry-mirrors": ["https://registry.docker-cn.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"100m", "max-file":"3"}
}

二、重启dokcer 

systemctl restart docker

三、创建容器

我这里使用的tomcat镜像,如果没有镜像可以自己拉取镜像

docker pull tomcat

docker run --name webtomcat -d -p 8081:8080  -d centos-jdk-tomcat:v20200121

创建容器后会生成一串数字,docker 会已这个数字创建一个容器的目录

/var/lib/docker/containers/5c0c836b5aaf2088e04d4df1ed9cc3aa770f300ca097b9a8c70416983ed31bd8

四、观察日志大小情况

cd /var/lib/docker/containers/5c0c836b5aaf2088e04d4df1ed9cc3aa770f300ca097b9a8c70416983ed31bd8

发现日志文件已经生成两个文件了,再等等看是否还生成一个文件。

技术图片

 

 

 最后发现,又生成了一个文件

技术图片

 

 

 4.1、观察日志是否是循环写入

我这里在*.1 日志文件最后写  1111

我这里在*.2 日志文件最后写  2222

技术图片

 

 

 技术图片

 

 

 4.2、观察日志文件是否有变化

需要登录*.log 这个文件变为100M后,发现变小了,发现他的日志写入到了 *.1里面,而*.1的日志写入到了 *.2里面

技术图片

 

 

 技术图片

 

 

 

五、这里遇到的问题

如果修改docker日志配置文件,重启docker ,原来的容器不会生产三个文件,不生效,需要重新创建容器

docker 限制日志文件大小和数量

标签:大小   配置   没有   创建   路径   rest   数字   docker   mon   

原文地址:https://www.cnblogs.com/pythonx/p/12320959.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!