管理(限制)Docker日志大小的方法总结

 更新时间:2025年08月12日 09:51:45   作者:欧阳方超  
在容器化部署的时候,因为没有指定日志的最大存储时间,导致磁盘被充爆,这篇文章主要介绍了管理(限制)Docker日志大小的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1 概述

在使用Docker过程中,如果不对容器产生的日志进行限制,可能会迅速占用大量的磁盘空间,本文介绍如何限制Docker日志大小,以便更好地管理Docker环境。

2 Docker日志简介

Docker默认使用json-file日志驱动来记录容器的标准输出(stdout)和标准错误(stderr)。这些日志文件通常存储在/var/lib/docker/containers/<container-id>目录下,文件名格式为<container-id>-json.log。随着容器的持续运行,日志文件会不断增大,如果没有适当的管理策略,可能会导致磁盘空间被耗尽。

使用下面的命令可以查看Docker使用的日志驱动:

[xiaoliu@localhost ~]$ sudo docker info|grep "Logging Driver"
 Logging Driver: json-file

3 限制Docker日志大小的方法

限制日志大小的方法通常有两种,一种的全局设置,另一种是单个容器设置。

3.1 通过Docker守护进程配置文件(全局设置)

3.1.1 修改配置文件

在Docker的守护进程配置文件daemon.json(如果没有需要创建,通常在/etc/docker目录下创建)中添加或修改以下内容:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "5"
  }
}

其中,log-driver指定使用json-file日志驱动(这是默认驱动,如果之前没有更改过,可不设置)。max-size设置单个日志文件的最大大小,这里设置为100m,即100MB,max-file设置保留的最大日志文件数量,这里设置为3,表示当日志文件达到最大大小时,Docker会自动创建新的日志文件,并保留最近的3个日志文件,旧的日志文件将被删除。

3.1.2 重启Docker服务

重启Docker服务,使之生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

注意,通过这种方式设置的日志限制只对新创建的容器生效,对于已经在运行的容器,需要重新创建才能应用新的日志限制。

3.2 在创建容器时指定日志选项(单个容器设置)

使用docker run命令创建容器时,可以通过–log-driver和–log-opt参数来指定,下面是一个创建nginx容器并指定参数的示例:

[xiaoliu@localhost ~]$ sudo docker run -d --name nginx -p 80:80 nginx:1.26.3-alpine-perl --log-driver=json-file --log-opt max-size=100m --log-opt max-file=5
92ba89c7694c485194bb9e787efda74c68795b53a977f38d66afa87bda85572e

这种方式,可以为每个容器单独设置不同的日志限制策略,更加灵活地管理日志。

对于使用docker-compose管理的容器,可以在docker-compose.yml文件中为每个服务配置日志选项,例如,下面是一个创建nginx容器的例子:

version: "3"

services:
  nginx:
    image: nginx:1.26.3-alpine-perl
    container_name: mynginx
    ports:
      - "80:80"
    logging:
      driver: "json-file"
      options:
        max-size: 100m
        max-file: "5"

这样在使用docker-compose up启动容器时,mynginx服务的日志将按照设置的规则进行管理。

4 总结

通过上面的方法可以有效限制Docker日志的大小,合理管理磁盘空间。

到此这篇关于管理(限制)Docker日志大小的文章就介绍到这了,更多相关限制Docker日志大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker容器启动不起来的若干问题解决

    docker容器启动不起来的若干问题解决

    本文主要介绍了docker容器启动不起来的若干问题解决,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • IDEA使用Docker插件(菜鸟教程)

    IDEA使用Docker插件(菜鸟教程)

    本文主要介绍了IDEA使用Docker插件,文中通过图文示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Docker安装Nginx教程实现图例讲解

    Docker安装Nginx教程实现图例讲解

    这篇文章主要介绍了Docker安装Nginx教程图例讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Linux/Docker 中使用 System.Drawing.Common 踩坑记录分享

    Linux/Docker 中使用 System.Drawing.Common 踩坑记录分享

    这篇文章主要介绍了Linux/Docker 中使用 System.Drawing.Common 踩坑记录,本文通过两种方案给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 使用GoogleContainerTools容器化jib构建docker镜像

    使用GoogleContainerTools容器化jib构建docker镜像

    这篇文章主要教大家如何使用GoogleContainerTools容器化jib构建docker镜像的实现,有需要的的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Docker拉取镜像超时的原因分析与解决方法

    Docker拉取镜像超时的原因分析与解决方法

    这篇文章主要为大家详细介绍了Docker在拉取镜像时超时的相关原因分析与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • 使用Docker安全地部署OpenClaw(龙虾)的详细步骤

    使用Docker安全地部署OpenClaw(龙虾)的详细步骤

    OpenClaw (龙虾) 是一个强大的个人 AI 助手,它可以连接各种消息平台并执行工具,本文介绍如何通过 Docker Compose 安全地部署 OpenClaw,并解析其中的关键配置,需要的朋友可以参考下
    2026-03-03
  • docker搭建tomcat运行环境的实现步骤

    docker搭建tomcat运行环境的实现步骤

    很多时候我们测试web系统需要一个tomcat运行环境,这时docker就派上用场了,本篇文章主要介绍了docker搭建tomcat运行环境的实现步骤,感兴趣的可以了解一下
    2017-01-01
  • Docker端口冲突5步快速定位并解决容器端口占用难题

    Docker端口冲突5步快速定位并解决容器端口占用难题

    ocker容器端口冲突是部署中的常见问题,通常因指定主机端口被其他进程或容器占用导致,这篇文章主要介绍了Docker端口冲突5步快速定位并解决容器端口占用难题的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-04-04
  • docker利用nextcloud搭建一个私有百度云盘

    docker利用nextcloud搭建一个私有百度云盘

    这篇文章主要介绍了docker利用nextcloud搭建一个私有百度云盘,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论