当前位置:   article > 正文

Docker日志配置及日志常用详解_docker run log

docker run log

Docker日志配置及日志常用详解

在跑带有Docker项目的时候,我们经常会查看日志排错

日志存放的位置在/var/lib/docker/containers/
  • 1

查看Docker日志所存放的位置
有些时候你会发现Docker的日志呈几何倍数增长,那么你就可能需要定期清理

使用docker system df 查看Docker镜像及日志等占用情况
  • 1

docker system df

#!/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 ========"  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
# chmod +x clean_docker_log.sh 增加执行权限

# ./clean_docker_log.sh  运行脚本
  • 1
  • 2
  • 3
#自动空间清理  
docker system prune
  • 1
  • 2

在这里插入图片描述

#在docker run的时候加上以下参数 可以控制某个容器生成日志的大小
--log-driver json-file  #日志驱动
--log-opt max-size=[0-9+][k|m|g] #文件的大小
--log-opt max-file=[0-9+] #文件数量
--restart=always #服务器重启-容器自动启动
  • 1
  • 2
  • 3
  • 4
  • 5
#Docker全局日志控制
#新建/etc/docker/daemon.json 若有就不用新建了 添加log-dirver和log-opts参数
# vim /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
// 重启docker守护进程
# systemctl daemon-reload
# systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
使用docker images查看镜像
  • 1

在这里插入图片描述

使用docker ps查看正在运行的实例镜像
  • 1

在这里插入图片描述
显示某个容器的所有log

docker logs [OPTIONS] <CONTAINER>
  • 1

在这里插入图片描述

//效果和Linux的 tail-f filename 一样,可以把最新内容刷新显示到屏幕上
docker logs -f <CONTAINER>
  • 1
  • 2
//效果和Linux的 tail-n 5 filename 一样,显示最后5行的内容 可以结合-f查看实时日志
docker logs --tail 20 <CONTAINER>
  • 1
  • 2

在这里插入图片描述

//例如查找所有包含 “error” 的log 可以结合其他参数使用
docker logs <CONTAINER> | grep error
  • 1
  • 2
//使用 --since 选项,显示从指定时间点到最新的日志
docker logs --since 2019-10-17T12:01:46.452616Z <CONTAINER>
  • 1
  • 2
//--since指定了开始时间点,还可以指定结束时间点,使用选项 --until,显示二者之间的日志
docker logs --since 2019-10-17T12:01:46.452616Z --until 2019-10-25T12:01:48.561714Z <CONTAINER>
  • 1
  • 2
//这些选项都可以放在一起使用
docker logs --tail 10 <CONTAINER> | grep info
docker logs -f --since 2019-10-17T12:01:46.452616Z --tail=10 <CONTAINER>
  • 1
  • 2
  • 3
#把 error 日志都写到指定文件
docker logs -t <CONTAINER> | grep error >> logs_error.txt
  • 1
  • 2

部分参考自
https://blog.csdn.net/sinat_32023305/article/details/94394889
https://www.jianshu.com/p/28f1acb11f6b

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/614659
推荐阅读
相关标签
  

闽ICP备14008679号