Docker + Nginx + Logrotate 日志管理与轮换实践

 更新时间:2026年05月01日 09:39:29   作者:青临的踩坑之路  
本文主要介绍了Docker + Nginx + Logrotate 日志管理与轮换实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

概述与背景

  • Docker 容器化环境中 Nginx 日志管理的挑战
  • Logrotate 的作用与必要性
  • 结合场景的实际需求(如日志切割、压缩、归档)

Docker 环境下的 Nginx 日志配置

  • Nginx 日志路径与 Docker 数据卷映射
volumes:
  - ./nginx/logs:/var/log/nginx

Logrotate 基础配置

在 /etc/logrotate.d/目录下 新增 nginx-web 这个文件可以随意命名

vim /etc/logrotate.d/nginx-web
  • Logrotate 核心配置参数说明
    daily                  # 指定日志轮换周期为每天(logrotate 每天执行一次轮换)。
    rotate 15              # 保留最近的 15 个轮换日志文件,超过 15 个的将被删除。
    compress               # 压缩旧的日志文件,以节省存储空间(默认使用 gzip 压缩)。
    missingok              # 如果日志文件丢失,不会报错。即使日志文件不存在,也不会阻止日志轮换。
    notifempty             # 如果日志文件为空,则不进行轮换。
    create 777 root root   # 创建新的日志文件时,设置权限为 777,并且设置拥有者为 root,用户组为 root。
    postrotate             # 在日志文件轮换之后执行的脚本。可以用来发送信号给服务来让其重新打开新的日志文件。
    docker kill --signal=USR1 nginx-web  # 向 nginx-web 的 Docker 容器发送 USR1 信号,让NGINX 重新打开日志文件。   
    endscript              # 结束 postrotate 脚本的定义。
}

nginx-web配置文件

/storage/docker/nginx/log/access.log 这个目录不用多介绍 nginx的日志文件全路径 error.log同理

/storage/docker/nginx/log/access.log {
    daily                  
    rotate 15               
    compress              
    missingok             
    notifempty            
    create 777 root root
    postrotate
        docker kill --signal=USR1 nginx-web
    endscript
}

/storage/docker/nginx/log/error.log {
    daily                  
    rotate 60               
    compress              
    missingok             
    notifempty            
    create 777 root root
    postrotate
        docker kill --signal=USR1 nginx-web
    endscript
} 

手动测试

logrotate -f /etc/logrotate.d/nginx-web

测试结果正常

查看access.log是否正常

确认docker kill --signal=USR1 nginx-web命令是否生效
测试结果正常!!

配置定时任务 crontab

 crontab -e

添加 (@daily意思为每天0点执行)

@daily /usr/sbin/logrotate -f /etc/logrotate.d/nginx-web

到此这篇关于Docker + Nginx + Logrotate 日志管理与轮换实践的文章就介绍到这了,更多相关Docker Nginx Logrotate 日志管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器编译LNMP的实现示例

    Docker容器编译LNMP的实现示例

    本文主要介绍了Docker容器编译LNMP,使用Docker容器基于centos镜像分别制作nginx镜像,mysql镜像和php镜像使用编译安装的方式,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12
  • Docker 阿里云镜像仓库CR使用小结

    Docker 阿里云镜像仓库CR使用小结

    阿里云提供了免费的容器镜像服务,更重要的是支持公开和私有仓库,本文主要介绍了Docker 阿里云镜像仓库CR使用小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • 关于docker registry使用详解

    关于docker registry使用详解

    Docker Registry 是一个无状态,高度可扩展的服务器端应用程序,它存储并允许您分发Docker映像,本文给大家介绍docker registry使用及相关配置,感兴趣的朋友一起看看吧
    2022-03-03
  • Docker开启远程安全访问的图文教程详解

    Docker开启远程安全访问的图文教程详解

    这篇文章主要介绍了Docker开启远程安全访问的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境

    Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境

    计算机视觉是一门涉及图像和视频处理的领域,可以应用于目标检测、图像识别、人脸识别等各种任务,本文给大家介绍Docker容器中的OpenCV如何轻松构建可移植的计算机视觉环境,感兴趣的朋友一起看看吧
    2023-12-12
  • Docker 未映射端口的解决方案(两种无需重启容器的访问方法)

    Docker 未映射端口的解决方案(两种无需重启容器的访问方法)

    本文介绍了两种无需重启MySQL容器的方法,让你访问其数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2026-04-04
  • Docker pull命令从镜像仓库获取镜像步骤详解

    Docker pull命令从镜像仓库获取镜像步骤详解

    docker pull是Docker中最基础也是最重要的命令之一,它用于从镜像仓库中拉取或下载镜像到本地,这篇文章主要介绍了Docker pull命令从镜像仓库获取镜像的相关资料,需要的朋友可以参考下
    2025-07-07
  • 在Docker中安装Oracle数据库超详细步骤

    在Docker中安装Oracle数据库超详细步骤

    oracle作为全球最强大的关系型数据库,应用在各行各业,下面这篇文章主要给大家介绍了关于在Docker中安装Oracle数据库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 基于Kubernetes和Docke实现留言簿案例

    基于Kubernetes和Docke实现留言簿案例

    这篇文章主要介绍了基于Kubernetes和Docke实现留言簿案例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • docker安装rocketMQ和安装过程中出现问题的解决

    docker安装rocketMQ和安装过程中出现问题的解决

    本文主要介绍了docker安装rocketMQ和安装过程中出现问题的解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12

最新评论