我正在尝试连接到 docker 事件总线以监听 swarm 上发生的各种事件,例如节点离开和加入集群、创建的服务等。问题。
是否有可能在群体级别获得此类信息?
如果是这样,是否
dockerpy
使用库来收听此类事件?
我正在尝试连接到 docker 事件总线以监听 swarm 上发生的各种事件,例如节点离开和加入集群、创建的服务等。问题。
是否有可能在群体级别获得此类信息?
如果是这样,是否dockerpy
使用库来收听此类事件?
来自 docker API 文档:https ://docs.docker.com/engine/api/v1.39
Docker 中的各种对象在发生某些事情时会报告事件。
容器报告这些事件:attach、commit、copy、create、destroy、detach、die、exec_create、exec_detach、exec_start、exec_die、export、health_status、kill、oom、pause、rename、resize、restart、start、stop、top、unpause , 并更新
服务报告这些事件:创建、更新和删除
节点报告这些事件:创建、更新和删除
并且来自 dockerpy 文档:https ://docker-py.readthedocs.io/en/stable/api.html?highlight=event
events(since=None, until=None, filters=None, decode=None)从服务器获取实时事件。类似于 docker events 命令。
参数:since (UTC datetime or int) – 从该点获取事件直到 (UTC datetime or int) – 获取到该点的事件 filters (dict) – 按事件时间、容器或图像解码过滤事件 (bool) – 如果设置为真,流将被即时解码为字典。默认为假。返回:一个 docker.types.daemon.CancellableStream 生成器
引发: docker.errors.APIError – 如果服务器返回错误。
基于 Docker 官方文档https://docs.docker.com/engine/reference/commandline/events/你可以使用:
docker events --filter 'scope=swarm'
如果你想在 dockerpy 中使用它,你可以使用:
import docker
client = docker.APIClient()
for event in client.events(decode=True, filters={"scope":"swarm"}):
print(event)