首页/云/Docker 容器速查/docker logs 查看容器日志
基础命令50 条

docker logs 查看容器日志

查看容器主进程的 stdout/stderr 历史输出;注意它只覆盖容器标准流,应用自己写进文件的日志不在其中。

Docker 容器速查云更新于 2026-10-13

docker logs 是什么

docker logs 读取容器主进程的 stdout 与 stderr 历史输出,也就是容器日志。它只覆盖标准流:应用自己写进文件、写进 rsyslog 或直接落盘的日志不在其中,这类日志要靠 exec 进容器或挂载目录去看。

基本信息

语法docker logs [选项] CONTAINER
高频选项--tail 100 末尾 100 行 -f 跟随输出 -t 显示时间戳 --since/--until 时间窗
可读前提日志驱动为 json-file、local、journald 等本地驱动
权限要求能访问 Docker 守护进程并读取该容器

典型使用场景

  • 容器起不来或反复重启:看主进程最后打印了什么,通常是配置缺失、依赖连不上、端口被占
  • 服务行为异常时对照输出:请求日志、错误栈、启动耗时都在标准流里
  • 变更后确认生效:改了配置重启容器,看日志里加载的参数是不是新值
  • 配合 -f 跟踪:灰度发布或压测时盯着实时输出观察错误率变化
  • 事故回溯:用时间窗口加时间戳,把日志拉成可与监控图表对齐的证据

常用示例

常用示例
docker logs web                        # 输出全部日志
docker logs --tail 100 web             # 只看最后 100 行
docker logs -f web                     # 持续跟随,类似 tail -f
docker logs -t --since 30m web         # 带时间戳看最近半小时
docker logs web 2>&1 | grep -i error   # 流与错误一起抓,按关键字过滤

选项读法

选项作用使用注意
--tail N只输出末尾 N 行大日志直接全量输出会刷屏,排障默认先加 tail
-f跟随新输出Ctrl-C 只断开会话,不会停止容器
-t每行前加时间戳时间来自容器日志记录时刻,与宿主时区相关
--since/--until按时间窗过滤相对时长为 30s/10m/1h,绝对时间用带时区的完整格式
--details附带容器级附加信息部分驱动才会输出内容
日志在容器被删除(含 --rm 自动删除)后一并消失,需要留存就要配置日志轮转或采集到外部日志系统,别指望出事后再回捞。
应用带输出缓冲时日志会延迟出现,表现为「服务已经在报错但日志是空的」。Python 加 -u 关闭缓冲,Java 注意标准流与日志文件双写导致内容不一致。

典型输出怎么读

  • 启动阶段的输出集中在最前面:框架版本、监听地址、加载的配置文件路径,先确认这三项符合预期
  • 请求类日志按时间递增,出现连续错误行说明故障正在持续,而间歇错误要配合时间戳与监控对照
  • 退出前最后几行最关键,异常栈、端口占用、数据库连不上都会在这里体现
  • 健康检查失败会以独立日志出现,别把它当成应用自身报错
需要长期留存时把日志采集到外部系统:容器被删除、宿主被重建、日志被轮转删除都会让现场消失,事故复盘往往就差那段时间的输出。

日志不输出怎么查

现象可能原因处理办法
日志完全为空日志驱动被设为丢弃,或应用把日志写进了文件先确认驱动类型,再进容器查找落盘的日志文件
只有前半段没有后半段主进程崩溃或被强杀,缓冲区内容没来得及刷出关闭输出缓冲,并检查内存上限与退出码
时间戳与本地时间差很多容器时区为默认的协调世界时给容器设置时区变量或挂载本地时间配置
命令报不支持读取使用了不提供读取能力的日志驱动改用本地文件类驱动,或把日志输出到外部采集端
日志延迟很久才出现应用输出带缓冲关闭缓冲,或在应用配置里开启行级刷新

日志量的治理

  • 单容器限制大小与份数,避免一个刷屏的服务吃掉整块磁盘
  • 在守护进程层面设默认值,新容器自动继承,省得逐个加参数
  • 把关键日志采集到集中平台,本机只保留最近一段窗口
  • 区分访问日志与错误日志的保留策略,错误日志留存更久
  • 排查结束后回归默认策略,别让临时的大保留量长期留在生产

易错点

  • 日志驱动被改成 none 时 docker logs 拿不到任何内容,排障前先确认驱动类型,别一直怀疑应用
  • 应用把日志写进文件而不是标准流,docker logs 看着干净其实错误都在文件里
  • 默认日志不轮转,长期运行的容器会把宿主磁盘写满,生产环境统一配 max-size 与 max-file

数据来源与参考

  • Docker 官方 CLI 参考:docker logs(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌