插件窝 干货文章 docker日志怎么看

docker日志怎么看

Docker 日志 容器 配置    来源:    2025-04-30

在 Docker 中查看日志是排查容器问题的重要方式,以下是几种常用方法及场景说明:


1. 查看实时日志(常用)

docker logs -f <容器名或ID>
  • -f:实时跟踪日志输出(类似 tail -f)
  • --tail N:仅显示最后 N 行(如 --tail 100)
  • -t:显示时间戳(如 docker logs -ft)

2. 查看指定时间段的日志

docker logs --since="2023-10-01T10:00:00" --until="2023-10-02T12:00:00" <容器ID>
  • --since:从指定时间开始显示
  • --until:截止到指定时间

3. 查看 JSON 格式的原始日志(高级调试)

docker inspect --format='{{.LogPath}}' <容器ID>
  • 此命令返回日志文件路径(默认存储在 /var/lib/docker/containers/<容器ID>/<容器ID>-json.log)

4. 使用 journalctl 查看 Docker 服务日志

如果容器日志驱动为 journald(需配置):

journalctl -u docker.service -f

5. 日志驱动与配置

Docker 支持多种日志驱动(默认 json-file),可通过以下命令查看当前配置:

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

修改日志驱动需在 daemon.json 中配置(如改为 syslog)。


6. 清理日志文件

如果日志文件过大:

# 单容器日志清理
truncate -s 0 $(docker inspect --format='{{.LogPath}}' <容器ID>)

# 全局清理(谨慎操作)
docker system prune

常见问题

  • 日志不更新? 确认容器是否在运行状态(docker ps)。
  • 日志太多? 使用 --tail 或 grep 过滤(如 docker logs <容器ID> | grep "error")。
  • 日志驱动问题? 检查 /etc/docker/daemon.json 配置。

推荐工具

  • Docker Compose:docker-compose logs -f <服务名>
  • Logrotate:定期轮转日志文件
  • ELK/Grafana:集中化日志管理(生产环境推荐)

根据需求选择合适的方法,简单调试用 docker logs -f,长期存储建议配置日志收集系统。