容器运行后容器日志会一直存储,时间久后会出现日志文件过大,从而导致查询日志困难,容器日志一般会在docker持久化目录containers下对应不同镜像名称以 *-json.log形式

查询方式

1
2
3
[root@zabbix ~]# docker inspect zbx-server | grep log
"LogPath": "/docker-compose/docker/containers/5e29aeaa4c9bdd2e9122bd4e827696
c7faedb000c363b90cb16f0d443dedd0f9/5e29aeaa4c9bdd2e9122bd4e827696c7faedb000c363b90cb16f0d443dedd0f9-json.log",

服务的日志记录配置

参数 解释
json-file 日志存储格式为json, 默认的logdriver驱动
syslog 日志写入到指定的syslog地址
local 日志以自定义格式存储
none 丢弃容器输出

局部配置(yaml)

1
2
3
4
5
6
7
8
9
version: "3.5"
services:
some-service:
image: busybox
logging:
driver: "json-file"
options:
max-size: "100m" 日志限制大小100m
max-file: "5" 保留5

全局配置

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@zabbix ~]# vi /etc/docker/daemon.json 
{
"registry-mirrors": ["https://qni50.mirror.aliyuncs.com"],
"insecure-registries":["harbor.od.com:81","harbor.od.com"],
"data-root":"/docker-compose/docker",
"log-driver": "json-file",
"log-opts": { "max-size": "100m", "max-file": "5"}
}
同上限制大小100m,保留5

重新启动 Docker 以使更改对新创建的容器生效。现有容器不使用新的日志记录配置
systemctl daemon-reload
systemctl restart docker