Docker容器目录/var/lib/containers日志文件太大控制
在Docker容器不重建的情况下,日志文件会默认一直追加,时间长会慢慢的占满服务器硬盘空间。其实就是我们常用的docker logs命令打印的日志会打印到这个目录下的文件之中。查看docker默认容器日志驱动[root@xx-xx log]# docker info|grep 'Logging Driver'Logging Driver: json-file查看一个运行中docker容器使用的日志
·
在Docker容器不重建的情况下,日志文件会默认一直追加,时间长会慢慢的占满服务器硬盘空间。其实就是我们常用的docker logs命令打印的日志会打印到这个目录下的文件之中。
查看docker默认容器日志驱动
[root@xx-xx log]# docker info|grep 'Logging Driver'
Logging Driver: json-file
查看一个运行中docker容器使用的日志驱动程序
[root@xx-xx log]# docker inspect -f '{{.HostConfig.LogConfig.Type}}' 96a7b67e2581
json-file
容器启动时使用–log-driver指定其使用与Docker容器守护进程不同的日志驱动程序
docker run -it --log-driver none xxx
容器支持的驱动:
驱动名 | 描述 |
---|---|
none | 运行的容器没有日志,docker logs没有任何输出 |
local | 日志以自定义格式存储,旨在实现最小开销 |
json-file | 日志格式为json,docker的默认日志记录驱动程序 |
syslog | 将日志消息写入syslog。改syslog守护程序必须在主机上运行 |
journald | 将日志消息写入journald。该journald守护程序必须在主机上运行 |
gelf | 将日志消息写入Graylog扩展日志格式(GELF)端点,例如Graylog或Logstash。 |
fluentd | 将日志消息写入fluentd (转发输入)。该fluentd 守护程序必须在主机上运行。 |
awslogs | 将日志消息写入Amazon CloudWatch Logs。 |
splunk | 使用HTTP事件收集器将日志消息写入splunk 。 |
etwlogs | 将日志消息写为Windows事件跟踪(ETW)事件。仅适用于Windows平台。 |
gcplogs | 将日志消息写入Google Cloud Platform(GCP)Logging。 |
logentries | 将日志消息写入Rapid7 Logentries。 |
全局修改日志驱动
修改配置文件/etc/docker/daemon.json
{
"log-driver": "none"
}
运行时控制,即在容器启动时添加参数的方式
# max-size 最大数值,必须大于0
# max-file 最大日志数,必须大于0
$ docker run -it --log-opt max-size=10m --log-opt max-file=3 容器名称
全局配置方式
创建或者修改文件/etc/docker/daemon.json,增加如下配置:
{
"log-driver":"json-file",
"log-opts":{
"max-size" :"10m","max-file":"2"
}
}
重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
更多推荐
已为社区贡献15条内容
所有评论(0)