docker日志設置


最近查看docker日志的時候,使用命令docker log -f 會出現日志無限翻滾的情況,這些日志都是打印到控制台的,但是都被docker收集了起來,放到了/var/lib/docker/containers/{容器id}/*.log中,一般默認的日志格式是{容器id}-json.log,如果日志大小不加限制,很可能日志會無限增長最終撐爆磁盤。

首先先用命令查看下日志大小情況

find /var/lib/docker/containers  -name '*.log'  -exec ls -lh {} \;

image-20210422101544085

可以看到,日志文件都不大。。咳咳

限制日志文件的大小方式有挺多種

一、治標:清空日志文件

使用以下命令直接情況日志文件

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

二、治本:設置Docker容器日志大小

1.設置docker運行時日志上限

nginx: 
  image: nginx:1.12.1 
  restart: always 
  logging: 
    driver: "json-file"
    options: 
      max-size: "5g"

重啟docker服務后生效

2.全局設置

修改/etc/docker/daemon.json 文件,添加log-dirver和log-opts參數

{
  "registry-mirrors": ["http://f613ce8f.m.daocloud.io"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

daemon.json配置文件的詳細配置文檔鏈接:https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file

這個則需要重啟docker后生效

service docker restart

三、參考文檔

https://blog.csdn.net/yjk13703623757/article/details/80283729


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM