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


    最近使用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 ,原来的容器不会生产三个文件,不生效,需要重新创建容器

  • 相关阅读:
    ExtJs gridPanel Column 时间格式化
    Asp.Net MVC结合ExtJs gridPanel 分页和高度自适应
    iOS组件化思路-大神博客研读和思考
    怎么面试架构师
    iOS应用架构谈 本地持久化方案及动态部署
    iOS应用架构谈 网络层设计方案
    iOS应用架构谈 view层的组织和调用方案
    iOS应用架构谈 开篇
    隐藏TabBar是个累人的活
    App升级时数据库的迁移更新
  • 原文地址:https://www.cnblogs.com/pythonx/p/12320959.html
Copyright © 2020-2023  润新知