Docker容器在运行过程当中会产生不少日志,长此以往,磁盘空间就被占满了,如下分享docker容器日志清理的几种方法linux
在linux上,容器日志通常存放在 /var/lib/docker/containers/container_id/
下, 以json.log
结尾,找到这些文件,删除便可,须要注意的是若是容器处在运行状态,使用 rm -rf
方式删除日志后,经过 df -h
会发现磁盘空间并无释放,缘由是在Linux或者Unix系统中,经过 rm -rf
或者文件管理器删除文件,将会从文件系统的目录结构上解除连接(unlink);若是文件此时是被打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用;因此经过rm -rf
删除日志时须要重启docker,以释放资源,这样很是不方便。docker
因此清理docker日志的正确方法是json
cat /dev/null > *-json.log
经过以上两种方式清理以后,随着时间的推移,容器日志又会逐渐增大,可谓指标不治本,要从根本上解决问题,须要限制容器服务的日志大小上限;这个经过修改docker的配置文件来实现bash
在docker的配置文件/etc/docker/daemon.json
(默认路径)中添加如下内容便可rest
"log-opts": { "max-size": "500m", "max-file": "3" }
重启docker进程日志
systemctl daemon-reload systemctl restart docker
须要注意的是在这里设置的日志大小,只对新建的容器有效。code