首页/云/云与容器速查/docker events 实时事件流
容器与 Docker106 条

docker events 实时事件流

订阅 Docker 守护进程事件:容器启动/停止/死亡、镜像拉取、网络变化;排『谁在重启容器』与『何时挂的』的效率工具。

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

docker events 是什么

docker events 订阅 Docker 守护进程的事件流,能看到容器的创建、启动、退出、停止,以及镜像拉取、网络与卷的变化。它的价值在于把『什么时候发生了什么』还原成时间线:排查容器被谁重启、什么时候挂掉、镜像是否被重新拉取这类问题时,比翻日志定位快得多。默认输出实时事件,用 --since 与 --until 可以回看指定时间窗口,但事件缓冲有限,久远的历史查不到。

基本信息

语法docker events [--filter] [--since] [--until]
过滤条件--filter container=myapp、--filter event=die、--filter type=network
时间窗口--since 1h --until 30m 用于回看历史区间
主要用途抓取容器死亡与重启时序,与业务故障时间线对齐
能力边界默认只保留有限缓冲,事件发生后应尽早查询

典型使用场景

  • 容器无故重启,需要确认重启发生的准确时间点
  • 排查『谁在重启我的容器』:是编排系统、脚本还是宿主上的定时任务
  • 镜像被重新拉取导致运行版本变化,定位变更发生的时间
  • 网络或卷被创建与删除引发的问题,确认变更动作的来源与顺序
  • 把事件与业务监控的时间轴对齐,做故障复盘的时序还原

使用示例

使用示例
docker events --since 1h
docker events --filter container=myapp --since 2h
docker events --filter event=die
docker events --filter event=start --format '{{.Time}} {{.Actor.Attributes.name}}'   # 只看启动事件
# 与容器日志、inspect 中的退出码结合,构成完整的时间线证据链

常用事件类型

事件含义排查价值
create容器被创建确认是否有人手工或脚本新建容器
start容器启动判断重启发生的准确时间点
die容器退出与退出码结合定位崩溃原因
stop收到停止指令区分主动停止与异常退出
pull / untag镜像拉取与解标签定位镜像版本被替换的时间
network / volume网络与卷发生变化排查配置被改动或资源被清理
容器反复死亡时,用 events 看死亡时刻,用 logs 看应用输出,用 inspect 读出退出码与是否被内存限制杀死,三者组合定位最快。
事件流不是持久审计日志:只保留有限缓冲,守护进程重启后历史即清空。需要长期留存必须接入外部日志系统,否则事后追溯时会发现关键区间是空的。

易错点

  • 重启发生很久之后才想起来查事件:缓冲已滚动,关键记录查不到
  • 只看应用日志不看守护进程事件,容器被外部杀死的原因完全消失在视野之外
  • 把事件流当作长期审计依据,事后追溯时才发现记录早已被冲掉
  • 过滤条件写错(如事件名大小写不符)导致输出为空,误判为没有发生任何事件

数据来源与参考

  • Docker Docs:docker events

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌