容器运行后容器日志会一直存储,时间久后会出现日志文件过大,从而导致查询日志困难,容器日志一般会在docker持久化目录containers下对应不同镜像名称以 *-json.log形式
1. 查询方式
[root@zabbix ~]# docker inspect zbx-server | grep log
"LogPath": "/docker-compose/docker/containers/5e29aeaa4c9bdd2e9122bd4e827696
c7faedb000c363b90cb16f0d443dedd0f9/5e29aeaa4c9bdd2e9122bd4e827696c7faedb000c363b90cb16f0d443dedd0f9-json.log",
2. 服务的日志记录配置
参数 | 解释 |
---|---|
json-file | 日志存储格式为json, 默认的logdriver驱动 |
syslog | 日志写入到指定的syslog地址 |
local | 日志以自定义格式存储 |
none | 丢弃容器输出 |
3. 局部配置(yaml)
version: "3.5"
services:
some-service:
image: busybox
logging:
driver: "json-file"
options:
max-size: "100m" 日志限制大小100m
max-file: "5" 保留5份
4. 全局配置
[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