Docker(七):管理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日志的大小,合理管理磁盘空间。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值