docker logs -f 是最常用轻量级实时日志追踪方式,等效 tail -f,支持 --tail、--since、-t 等参数组合,适用于单容器调试。

直接用 docker logs -f 就能实时跟踪容器 stdout/stderr 输出,这是最常用也最有效的方式。关键在于选对参数组合,并注意日志驱动是否支持。
快速启动实时日志监控
运行以下命令即可开始实时查看:
-
docker logs -f <容器名或ID>—— 持续输出新日志,按 Ctrl+C 退出 -
docker logs -n 100 -f <容器名>—— 先显示最近 100 行,再持续追加 -
docker logs -t -f <容器名>—— 带时间戳实时输出,便于定位事件顺序
按时间范围筛选最新日志
当问题刚发生,不需要从头翻起时,用时间参数更高效:
-
docker logs --since 5m <容器名>—— 查看最近 5 分钟的日志 -
docker logs --since 2026-08-29T00:00:00 <容器名>—— 查看指定时间点之后的日志 -
docker logs --since 1h --until 30m <容器名>—— 查看 1 小时前到 30 分钟前的日志段
容器没日志?先确认日志驱动和状态
如果 docker logs 返回空白或报错,常见原因有:
- 容器使用了
none、syslog或fluentd日志驱动,此时docker logs不生效;可用docker inspect --format='{{.HostConfig.LogConfig.Type}}' <容器名>查看实际驱动 - 容器已退出:执行
docker ps -a确认状态,再用docker logs <容器名>查历史输出 - 应用把日志写进了文件而非 stdout:需进入容器查
/var/log/或应用自定义路径,例如docker exec <容器名> tail -50 /app/logs/error.log
避免日志撑爆磁盘的实用配置
默认日志无限制增长,建议在 /etc/docker/daemon.json 中设置轮转:
-
"max-size": "10m"—— 单个日志文件最大 10MB -
"max-file": "3"—— 最多保留 3 个历史日志文件 - 搭配
"log-driver": "json-file",适用于绝大多数调试场景


















