docker日志设置定期清理

1. 日志的查看

docker logs
具体的参数,请查看help命令。
docker logs --help

2. 清除日志文件

docker日志的存储位置:/var/lib/docker/containers/<容器ID>/*.log。 

通过ll可以查出来一堆容器名字出来,但是如何知道这么长的日志目录属于那些容器所有呢?


可以通过docker ps -a 查询
我们会发现查询的[容器ID] 和 [日志文件的目录] 是相同的

a) 查看所有容器日志文件大小:
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

b) 临时清理日志文件:
truncate -s 0 /var/lib/docker/containers/<容器ID>/*-json.log

当然也可以这样:
cat /dev/null > *-json.log
注意:rm -rf *-json.log 删除后需要重启容器。如果容器运行的情况下,linux进程会引用着, 不会释放磁盘空间的。

3. 日志设置

a) 在dokcer的配置文件中增加日志参数
添加log-dirver和log-opts参数;
$ vi /etc/docker/daemon.json
"log-driver":"json-file",
"log-opts":{ "max-size" :"50m","max-file":"3"}
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json
b) 重启生效
sudo systemctl daemon-reload
sudo systemctl restart docker
只针对于新创建的docker有效

4. 日志收集

可以使用fluentd收集。

具体请参照:https://www.cnblogs.com/YatHo/p/7866029.html



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐