容器日志逐渐增大-如何限制

快速演示

如下,我们启动一个MySQL容器服务测试

docker pull daocloud.io/library/mysql:5.7.26
dir=/home/mysql-data && mkdir -p $dir
docker run -d --restart always --name mysql-source \
-v $dir:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
daocloud.io/library/mysql:5.7.26

我们观察下Docker内部的一个磁盘挂载文件

[root@ys92.sae ~]# docker ps -a --no-trunc
CONTAINER ID                                                       IMAGE                              COMMAND                         CREATED             STATUS              PORTS                               NAMES
ac16ea5ef6a3e02bb2ad0d4aa20fd48831a7f74894008fef5034024ccc3d1af4   daocloud.io/library/mysql:5.7.26   "docker-entrypoint.sh mysqld"   59 seconds ago      Up 57 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-source

[root@ys92.sae ~]# df -h | grep ac16ea5ef6a3e02bb2ad0d4aa20fd48831a7f74894008fef5034024ccc3d1af4
shm              64M     0   64M   0% /var/lib/docker/containers/ac16ea5ef6a3e02bb2ad0d4aa20fd48831a7f74894008fef5034024ccc3d1af4/mounts/shm

/var/lib/docker/containers/ac16ea5ef6a3e02bb2ad0d4aa20fd48831a7f74894008fef5034024ccc3d1af4/ac16ea5ef6a3e02bb2ad0d4aa20fd48831a7f74894008fef5034024ccc3d1af4-json.log

/var/lib/docker/containers/${CONTAINER}/${CONTAINER}-json.log为容器内部的日志文件,该文件内容比docker logs -f ${CONTAINER}还要多些

在这里插入图片描述

Docker日志大小限制

Docker支持多种日志记录方法,默认是json-file,本文以限制json-file方式的日志为例:

1 查看当前Docker Daemon日志记录方式

docker info --format '{{.LoggingDriver}}'

2 查看某个具体容器的日志记录方式

docker inspect -f '{{.HostConfig.LogConfig.Type}}' <CONTAINER>

3 修改整个Docker Daemon的日志记录规则(需要重启Docker)

touch /etc/docker/daemon.json
cat /etc/docker/daemon.json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3" 
  }
}

4 修改单个容器的日志记录方式

docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash

5 相关参数含义解释
在这里插入图片描述

--log-opt max-size=10m,单个日志文件最大大小,可用单位有k、m、g,默认-1表示不限制
--log-opt max-file=3,最多保留几个日志文件,需配合上述参数使用,默认1

参考资料

https://docs.docker.com/config/containers/logging/
https://docs.docker.com/config/containers/logging/json-file/
https://docs.docker.com/config/containers/logging/dual-logging/
https://blog.csdn.net/xys2015/article/details/110958107
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯尔kyle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值