api - 如何使用engine-api观看docker事件

标签 api go docker docker-engine

有人知道如何使用 docker 的 go 客户端 engine-api 来观看 docker 事件,或者有任何示例吗?

最佳答案

我现在知道该怎么做:

package main

import (
    "encoding/json"
    "fmt"
    "io"
    "log"

    "github.com/docker/engine-api/client"
    "github.com/docker/engine-api/types"
    "github.com/docker/engine-api/types/events"
    "golang.org/x/net/context"
)

func main() {

    defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
    cli, err := client.NewClient("http://172.17.150.101:2376", "v1.24", nil, defaultHeaders)
    if err != nil {
        panic(err)
    }

    options := types.ContainerListOptions{All: true}
    containers, err := cli.ContainerList(context.Background(), options)
    if err != nil {
        panic(err)
    }

    for _, c := range containers {
        fmt.Println(c.ID)
    }

    body, err := cli.Events(context.Background(), types.EventsOptions{})
    if err != nil {
        log.Fatal(err)
    }

    dec := json.NewDecoder(body)
    for {
        var event events.Message
        err := dec.Decode(&event)
        if err != nil && err == io.EOF {
            break
        }

        log.Println(event)
    }
}

关于api - 如何使用engine-api观看docker事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38759427/

相关文章:

r - 将 curl 命令转换为 http 请求接口(interface)

ruby - 抓取推文 - 更好地使用网站或 api?

ios - 如何将带有 iOS API 的 Google+ OAuth2 限制为一个域?

json - Golang 返回小写 json key

docker - 在不同的客户端设备上使用相同的 Docker 机器

php - 从bash连接到远程PHP解释器

linux - 系统API和系统调用API的区别

go - 获取nil指针类型的reflect.Value

go - 如何使用 'routes' 文件读取 Revel 中的查询参数?

docker - 驱动程序 "devicemapper"在容器中的进程被杀死后无法删除根文件系统