首页/ 学科题库/ docker/ 容器日志查看
docker 实战教程

容器日志查看

2026-05-21 约 5 分钟 juanwangdev

容器日志查看

容器日志是排查问题的关键,下面介绍 Docker 日志查看方法。

docker logs 命令

Bash
# 查看容器日志
docker logs my-nginx

# 实时跟踪日志输出
docker logs -f my-nginx

# 查看最近 10 行
docker logs --tail 10 my-nginx

# 查看最近 10 行并实时跟踪
docker logs -f --tail 10 my-nginx

时间过滤

Bash
# 查看指定时间后的日志
docker logs --since 2024-01-01T10:00:00 my-nginx

# 查看最近 30 分钟日志
docker logs --since 30m my-nginx

# 查看指定时间前的日志
docker logs --until 2024-01-01T12:00:00 my-nginx

# 查看最近 1 小时日志
docker logs --since 1h --until now my-nginx

添加时间戳

Bash
# 显示时间戳
docker logs -t my-nginx

# 输出示例
2024-01-01T10:00:00.123456789Z 192.168.1.1 - - "GET / HTTP/1.1" 200
2024-01-01T10:00:01.123456789Z 192.168.1.2 - - "GET /api HTTP/1.1" 200

过滤日志内容

Bash
# 结合 grep 过滤关键字
docker logs my-nginx 2>&1 | grep "error"

# 实时跟踪并过滤
docker logs -f my-nginx 2>&1 | grep --line-buffered "error"

# 统计错误数量
docker logs my-nginx 2>&1 | grep -c "error"

Docker 日志包含标准输出(stdout)和标准错误(stderr),2>&1 合并两个流。

查看日志文件

Docker 日志默认存储在 /var/lib/docker/containers/ 目录:

Bash
# 查找容器日志文件路径
docker inspect --format='{{.LogPath}}' my-nginx

# 输出
/var/lib/docker/containers/a1b2c3d4e5f6/a1b2c3d4e5f6-json.log

# 直接查看日志文件
tail -f /var/lib/docker/containers/a1b2c3d4e5f6/a1b2c3d4e5f6-json.log

日志驱动配置

容器创建时可指定日志驱动:

Bash
# 使用 json-file 驱动(默认)
docker run -d --name my-nginx --log-driver json-file nginx

# 限制日志大小
docker run -d --name my-nginx \
  --log-driver json-file \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  nginx

# 使用 syslog 驱动
docker run -d --name my-nginx --log-driver syslog nginx

常用日志驱动:

驱动说明
json-file默认,JSON 格式存储
journald写入 systemd journal
syslog发送到 syslog 服务器
none禁用日志
local本地存储,更高效的格式

要点总结

  • docker logs 查看容器日志,-f 实时跟踪,--tail 限制行数
  • --since 和 --until 按时间过滤日志
  • -t 显示时间戳,便于问题定位
  • 日志存储在 /var/lib/docker/containers/<id>/<id>-json.log
  • 生产环境建议配置 max-size 和 max-file 防止日志占满磁盘
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 容器状态管理 下一篇 → 容器进入与执行