全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 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-sizemax-file 防止日志占满磁盘

📝 发现内容有误?点击此处直接编辑

← 上一篇 容器删除与清理
下一篇 → 容器状态管理
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库