docker events 可实时监听守护进程广播的各类事件,支持时间范围筛选、类型/标签过滤及 JSON 格式输出,适用于自动化响应与审计,需 docker 用户组权限。
用 docker events 可以实时监听 docker 守护进程发出的所有事件,比如镜像拉取、容器启停、网络创建、卷挂载等。它不依赖 compose 项目,也不操作具体资源,而是直接订阅守护进程的内部广播流,适合做自动化响应或轻量审计。
基础监听:默认输出人类可读格式
执行后会持续打印事件,直到手动中断(Ctrl+C):
-
docker events—— 监听全部事件,含时间戳、类型、动作、对象ID和状态描述 -
docker events --since "2026-10-09T08:00:00"—— 从指定时间起开始监听 -
docker events --until "2026-10-09T08:15:00"—— 到指定时间自动退出
按类型或对象过滤事件
避免信息过载,可用 --filter 精准捕获关注内容:
-
docker events --filter 'event=start'—— 只看容器启动事件 -
docker events --filter 'type=container'—— 仅容器相关事件 -
docker events --filter 'type=image' --filter 'event=pull'—— 镜像拉取事件 -
docker events --filter 'label=env=prod'—— 带特定标签的资源事件(需容器/镜像已打标)
程序化处理:用 JSON 格式对接脚本
加 --format '{{json .}}' 或 --json 输出结构化数据,方便 Python、Node.js 等解析:
-
docker events --json | jq 'select(.Type=="container" and .Action=="start")'—— 用 jq 提取容器启动事件 -
docker events --format '{{.Status}} {{.Actor.Attributes.name}}'—— 自定义字段组合,如start nginx-web - 配合
timeout 30s或写入日志文件,可用于定时巡检或故障触发逻辑
注意事项与常见配合方式
该命令依赖 Docker 守护进程正常运行,且需要调用者有访问 /var/run/docker.sock 的权限(通常需在 docker 用户组中):
- 普通用户执行报错“permission denied”时,运行
sudo usermod -aG docker $USER并重新登录 - 在 CI/CD 或监控脚本中,建议加
--since和--until避免无限阻塞 - 与
docker system df结合,可在事件触发后立刻检查磁盘变化;与docker ps -a对照,能快速定位异常退出容器


















