beats: github.com/elastic/beats/libbeat/common/docker Index | Files

package docker

import "github.com/elastic/beats/libbeat/common/docker"

Index

Package Files

client.go watcher.go

func NewClient Uses

func NewClient(host string, httpClient *http.Client, httpHeaders map[string]string) (*client.Client, error)

NewClient builds and returns a new Docker client It uses version 1.32 by default, and negotiates it with the server so it is downgraded if 1.32 is too high.

type Client Uses

type Client interface {
    ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
    ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error)
    Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error)
}

Client for docker interface

type Container Uses

type Container struct {
    ID          string
    Name        string
    Image       string
    Labels      map[string]string
    IPAddresses []string
    Ports       []types.Port
}

Container info retrieved by the watcher

type TLSConfig Uses

type TLSConfig struct {
    CA          string `config:"certificate_authority"`
    Certificate string `config:"certificate"`
    Key         string `config:"key"`
}

TLSConfig for docker socket connection

type Watcher Uses

type Watcher interface {
    // Start watching docker API for new containers
    Start() error

    // Stop watching docker API for new containers
    Stop()

    // Container returns the running container with the given ID or nil if unknown
    Container(ID string) *Container

    // Containers returns the list of known containers
    Containers() map[string]*Container

    // ListenStart returns a bus listener to receive container started events, with a `container` key holding it
    ListenStart() bus.Listener

    // ListenStop returns a bus listener to receive container stopped events, with a `container` key holding it
    ListenStop() bus.Listener
}

Watcher reads docker events and keeps a list of known containers

func NewWatcher Uses

func NewWatcher(host string, tls *TLSConfig, storeShortID bool) (Watcher, error)

NewWatcher returns a watcher running for the given settings

func NewWatcherWithClient Uses

func NewWatcherWithClient(client Client, cleanupTimeout time.Duration, storeShortID bool) (Watcher, error)

NewWatcherWithClient creates a new Watcher from a given Docker client

type WatcherConstructor Uses

type WatcherConstructor func(host string, tls *TLSConfig, storeShortID bool) (Watcher, error)

WatcherConstructor represent a function that creates a new Watcher from giving parameters

Package docker imports 14 packages (graph) and is imported by 35 packages. Updated 2019-09-18. Refresh now. Tools for package owners.