Docker-查看容器日志
1.如何找出docker容器日志文件?
在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log结尾的文件
# 查看各个容器的日志文件大小
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
2.如何清理日志
如果docker容器正在运行,那么使用rm -rf 方式删除日志后,通过df -h会发现磁盘空间并没有释放。
- 原因:
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用
# 正确操作
cat /dev/null > *-json.log
# 或者rm删除后,重启docker
清理脚本:
#!/bin/sh
echo "==================== start clean docker containers logs =========================="
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "==================== end clean docker containers logs =========================="
3.设置Docker容器日志大小
通过配置容器docker-compose的max-size选项来实现
3.1 针对单容器设置
如nginx:
nginx:
image: nginx:1.12.1
restart: always
logging:
driver: "json-file"
options:
max-size: "5g"
....
重启nginx容器之后,其日志文件的大小就被限制在5GB,再也不用担心了。
3.2 全局设置
新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数如下:
{
"registry-mirrors": ["https://ud17re9w.mirror.aliyuncs.com"],
"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。
3.3 重启docker守护进程
# systemctl daemon-reload
# systemctl restart docker
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。
文章标题:Docker-查看容器日志
文章字数:468
本文作者:猿码记
发布时间:2018-07-12 11:33
原始链接:liuqh.icu/2018/07/12/查看容器日志/版权声明: 转载请保留原文链接及作者。