docker

package
v0.6.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 18 Imported by: 27

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeDotLabels

func DeDotLabels(labels map[string]string, dedot bool) mapstr.M

DeDotLabels returns a new mapstr.M containing a copy of the labels where the dots have been converted into nested structure, avoiding possible mapping errors

func ExtractContainerName

func ExtractContainerName(names []string) string

ExtractContainerName strips the `/` characters that frequently appear in container names

func NewClient

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

NewClient builds and returns a new Docker client. On the first request the client will negotiate the API version with the server unless DOCKER_API_VERSION is set in the environment.

Types

type Client

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

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

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

TLSConfig for docker socket connection

type Watcher

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

func NewWatcher(log *logp.Logger, host string, tls *TLSConfig, storeShortID bool) (Watcher, error)

NewWatcher returns a watcher running for the given settings

func NewWatcherWithClient

func NewWatcherWithClient(log *logp.Logger, client Client, cleanupTimeout time.Duration, storeShortID bool) (Watcher, error)

NewWatcherWithClient creates a new Watcher from a given Docker client

type WatcherConstructor

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

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL