Docker容器日志清理

[如何清理Docker占用的磁盘空间? - DockOne.io](http://dockone.io/article/3056)

补充:

1. 查看docker日志文件,单独列出每个容器的日志文件大小。
 
       ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
       
2. docker容器所在目录  /var/lib/docker

3.  [docker的/var/lib/docker目录迁移 - 熊小熊的个人页面 - OSCHINA](https://my.oschina.net/qbj/blog/2998164)

4. 设置Docker容器日志大小(治本)
   
   4.1 设置一个容器服务的日志大小上限

      在启动容器的时候增加一个参数设置该容器的日志大小,及日志驱动

       --log-driver json-file  #日志驱动
       --log-opt max-size=[0-9+][k|m|g] #文件的大小
       --log-opt max-file=[0-9+] #文件数量
   
   4.2 编辑文件/etc/docker/daemon.json, 增加以下日志的配置

       "log-driver":"json-file",
       "log-opts": {"max-size":"500m", "max-file":"3"}
       max-size=500m,意味着一个容器日志大小上限是500M,
       max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

   4.3 然后重启docker守护进程
   
       systemctl daemon-reload
       systemctl restart docker

   
   #### 注意:设置的日志大小,只对新建的容器有效。
   
5. 删除docker容器(正在运行的,避免影响线上)日志的时候,尽量不用rm
   <br />   如果docker容器正在运行,那么使用rm -rf 方式删除日志后,通过df -h会发现磁盘空间并没有释放
   <br />   原因:在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
   <br />   方案:采用 truncate -s 0 日志名 来处理,这样清理出了空间,同时不影响线上环境。若执意要用rm删除,就必须重启docker,这样影响线上环境。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值