linux

Linux Docker日志如何查看与管理

小樊
47
2025-09-25 00:26:06
栏目: 智能运维

Linux Docker日志查看与管理指南

一、Docker日志基础:查看与过滤

1. 使用docker logs命令查看日志

docker logs是Docker原生提供的核心日志查看工具,支持多种选项满足不同场景需求:

2. 查看Docker守护进程日志

Docker守护进程(dockerd)的日志记录了Docker服务本身的运行状态(如启动、停止、错误),其位置取决于系统配置:

二、日志文件位置与存储配置

1. 默认日志路径

Docker默认使用json-file驱动,容器日志以JSON格式存储在宿主机上,路径为:
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
可通过docker inspect --format='{{.LogPath}}' <容器ID>快速获取具体路径。

2. 配置日志驱动与参数

(1)全局配置(影响所有新容器)

修改/etc/docker/daemon.json文件(若不存在则创建),设置默认日志驱动及选项:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",  // 单个日志文件最大10MB
    "max-file": "3"     // 最多保留3个日志文件(当前+2个轮转)
  }
}

修改后需重启Docker服务生效:sudo systemctl restart docker

(2)容器级别配置(仅影响当前容器)

启动容器时通过--log-driver--log-opt覆盖全局配置:
docker run --log-driver=json-file --log-opt max-size=20m --log-opt max-file=5 my_app

三、日志轮转与空间管理

1. 配置日志轮转

通过max-size(单个文件大小)和max-file(保留文件数量)参数实现自动轮转,避免日志文件过大。例如:
docker run --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3 my_app
表示每个日志文件最大10MB,保留3个文件(超过时自动删除最旧的)。

2. 手动清理日志

若日志已占满磁盘,可手动清理:

四、进阶:第三方日志管理工具

对于生产环境,建议使用第三方工具集中管理日志,提升分析与处理效率:

1. ELK Stack(Elasticsearch+Logstash+Kibana)

2. Graylog

专注于日志收集、存储与分析的工具,支持实时告警、日志聚合等功能。配置方式类似ELK,需将容器日志驱动设置为gelf,并指向Graylog服务器。

五、最佳实践

0
看了该问题的人还看了