首页/云/Docker 容器速查/docker events 观察 daemon 事件流
基础命令50 条

docker events 观察 daemon 事件流

实时订阅 Docker 守护进程事件:容器创建、启动、退出、OOM、健康状态变化等,用来回答“为什么它又重启了”。

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

docker events 是什么

docker events 实时订阅 Docker 守护进程的事件流:容器创建、启动、退出、被杀、内存超限、健康状态变化,以及网络与卷的增删。它回答的是“这台机器刚刚发生了什么”,定位重启与异常退出比翻应用日志快得多。

基本信息

用途订阅守护进程事件流,不是应用日志
语法docker events [--filter type=container] [--filter event=die] [--since / --until]
典型事件create、start、die、kill、oom、health_status、destroy
默认起点从当前时刻开始,回看历史必须加 --since
格式化--format '{{.Time}} {{.Action}} {{.Actor.Attributes.name}}'

典型使用场景

  • 排查容器为什么又重启了:订阅 die 事件并查看退出码
  • 定位内存超限:订阅 oom 事件,直接对上被杀的时间点
  • 观察健康状态:health_status 事件记录每次状态切换
  • 审计操作:确认谁在什么时候删除了容器或网络
  • 作为告警触发源:把事件流接入监控系统做实时通知
  • 排查批量异常:用 --since 回看最近一小时的事件序列,找共同时间点

示例

示例
docker events                                        # 实时订阅全部事件
docker events --filter type=container --filter event=die    # 只看容器退出
docker events --since 1h --until 10m --filter event=oom     # 回看一小时内的内存超限
docker events --format '{{.Time}} {{.Action}} {{.Actor.Attributes.name}}'

常用事件与排查价值

事件含义排查价值
create / start容器被创建、启动确认部署是否真的执行到
die容器退出,附带退出码区分正常结束与异常崩溃
kill容器被强制杀死多为超时或人工干预
oom内存超限触发 OOM对应内存限额与泄漏排查
health_status健康状态发生变化定位服务何时变得不可用
destroy容器被删除审计与误删排查
事件流只包含生命周期事件,不含业务日志,定位根因仍需配合 docker logs 与容器内日志一起看。
默认从当前时刻开始订阅,作为常驻进程运行时要用 --filter 收窄范围,否则事件量会刷满终端与磁盘。
退出码是 die 事件里的关键线索:137 多为内存超限或被强杀,143 是收到 SIGTERM 正常退出,126 与 127 指向命令不存在或不可执行。

易错点

  • 排查已发生的故障时忘了加 --since,事件不会补发,只能干等新事件出现
  • 把 events 当成应用日志使用:业务异常在事件流里根本看不到,需要配合容器日志
  • 长时间订阅不加过滤,事件量大时终端与日志文件迅速膨胀,反而影响排查
  • 守护进程重启期间的事件不会被保留,关键场景要接入外部系统落库才能长期审计

数据来源与参考

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