mgr

package
v0.0.0-...-f2d3d7a Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2018 License: Apache-2.0 Imports: 76 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ProfileNamePrefix is the prefix for loading profiles on a localhost. Eg. localhost/profileName.
	ProfileNamePrefix = "localhost/"
	// ProfileRuntimeDefault indicates that we should use or create a runtime default profile.
	ProfileRuntimeDefault = "runtime/default"
	// ProfileDockerDefault indicates that we should use or create a docker default profile.
	ProfileDockerDefault = "docker/default"
	// ProfilePouchDefault indicates that we should use or create a pouch default profile.
	ProfilePouchDefault = "pouch/default"
	// ProfileNameUnconfined is a string indicating one should run a pod/containerd without a security profile.
	ProfileNameUnconfined = "unconfined"
)

FIXME: these variables have no relation with spec, move them.

View Source
const (
	// DefaultStopTimeout is the timeout (in seconds) for the syscall signal used to stop a container.
	DefaultStopTimeout = 10
)
View Source
const (
	// EvExit represents container's exit event.
	EvExit = iota
)

Variables

View Source
var (
	// GCExecProcessTick is the time interval to trigger gc unused exec config,
	// time unit is minute.
	GCExecProcessTick = 5
)

Functions

func BuildContainerEndpoint

func BuildContainerEndpoint(c *Container) *networktypes.Endpoint

BuildContainerEndpoint is used to build container's endpoint config.

func IsBridge

func IsBridge(mode string) bool

IsBridge is used to check if network mode is bridge mode.

func IsContainer

func IsContainer(mode string) bool

IsContainer is used to check if network mode is container mode.

func IsDefault

func IsDefault(mode string) bool

IsDefault indicates whether container uses the default network stack.

func IsHost

func IsHost(mode string) bool

IsHost is used to check if network mode is host mode.

func IsNone

func IsNone(mode string) bool

IsNone is used to check if network mode is none mode.

func IsPrivate

func IsPrivate(mode string) bool

IsPrivate indicates whether container uses its private network stack.

func IsUserDefined

func IsUserDefined(mode string) bool

IsUserDefined is used to check if network mode is bridge mode.

Types

type AttachConfig

type AttachConfig struct {
	Stdin  bool
	Stdout bool
	Stderr bool

	// For IO backend like http, we need to mux stdout & stderr
	// if terminal is disabled.
	// But for other IO backend, it is not necessary.
	// So we should make it configurable.
	MuxDisabled bool

	// Attach using http.
	Hijack  http.Hijacker
	Upgrade bool

	// Attach using pipe.
	Pipe *io.PipeWriter

	// Attach using streams.
	Streams *remotecommand.Streams

	// Attach to the container to get its log.
	CriLogFile *os.File
}

AttachConfig wraps some infos of attaching.

type Container

type Container struct {
	sync.Mutex

	// app armor profile
	AppArmorProfile string `json:"AppArmorProfile,omitempty"`

	// seccomp profile
	SeccompProfile string `json:"SeccompProfile,omitempty"`

	// no new privileges
	NoNewPrivileges bool `json:"NoNewPrivileges,omitempty"`

	// The arguments to the command being run
	Args []string `json:"Args"`

	// config
	Config *types.ContainerConfig `json:"Config,omitempty"`

	// The time the container was created
	Created string `json:"Created,omitempty"`

	// driver
	Driver string `json:"Driver,omitempty"`

	// exec ids
	ExecIds string `json:"ExecIDs,omitempty"`

	// Snapshotter, GraphDriver is same, keep both
	// just for compatibility
	// snapshotter informations of container
	Snapshotter *types.SnapshotterData `json:"Snapshotter,omitempty"`

	// graph driver
	GraphDriver *types.GraphDriverData `json:"GraphDriver,omitempty"`

	// host config
	HostConfig *types.HostConfig `json:"HostConfig,omitempty"`

	// hostname path
	HostnamePath string `json:"HostnamePath,omitempty"`

	// hosts path
	HostsPath string `json:"HostsPath,omitempty"`

	// The ID of the container
	ID string `json:"Id,omitempty"`

	// The container's image
	Image string `json:"Image,omitempty"`

	// log path
	LogPath string `json:"LogPath,omitempty"`

	// mount label
	MountLabel string `json:"MountLabel,omitempty"`

	// mounts
	Mounts []*types.MountPoint `json:"Mounts"`

	// name
	Name string `json:"Name,omitempty"`

	// network settings
	NetworkSettings *types.NetworkSettings `json:"NetworkSettings,omitempty"`

	Node interface{} `json:"Node,omitempty"`

	// The path to the command being run
	Path string `json:"Path,omitempty"`

	// process label
	ProcessLabel string `json:"ProcessLabel,omitempty"`

	// resolv conf path
	ResolvConfPath string `json:"ResolvConfPath,omitempty"`

	// restart count
	RestartCount int64 `json:"RestartCount,omitempty"`

	// The total size of all the files in this container.
	SizeRootFs int64 `json:"SizeRootFs,omitempty"`

	// The size of files that have been created or changed by this container.
	SizeRw int64 `json:"SizeRw,omitempty"`

	// state
	State *types.ContainerState `json:"State,omitempty"`

	// BaseFS
	BaseFS string `json:"BaseFS, omitempty"`

	// Escape keys for detach
	DetachKeys string
}

Container represents the container's meta data.

func (*Container) ExitCode

func (c *Container) ExitCode() int64

ExitCode returns container's ExitCode.

func (*Container) FormatStatus

func (c *Container) FormatStatus() (string, error)

FormatStatus format container status

func (*Container) IsCreated

func (c *Container) IsCreated() bool

IsCreated returns container is created or not.

func (*Container) IsExited

func (c *Container) IsExited() bool

IsExited returns container is exited or not.

func (*Container) IsPaused

func (c *Container) IsPaused() bool

IsPaused returns container is paused or not.

func (*Container) IsRestarting

func (c *Container) IsRestarting() bool

IsRestarting returns container is restarting or not.

func (*Container) IsRunning

func (c *Container) IsRunning() bool

IsRunning returns container is running or not.

func (*Container) IsStopped

func (c *Container) IsStopped() bool

IsStopped returns container is stopped or not.

func (*Container) Key

func (c *Container) Key() string

Key returns container's id.

func (*Container) StopTimeout

func (c *Container) StopTimeout() int64

StopTimeout returns the timeout (in seconds) used to stop the container.

func (*Container) Write

func (c *Container) Write(store *meta.Store) error

Write writes container's meta data into meta store.

type ContainerEvent

type ContainerEvent struct {
	Kind int
	// contains filtered or unexported fields
}

ContainerEvent represents the container's events.

func ContainerExitEvent

func ContainerExitEvent(c *Container) *ContainerEvent

ContainerExitEvent represents container's exit event.

func (*ContainerEvent) String

func (e *ContainerEvent) String() string

String returns container's event type as a string.

func (*ContainerEvent) WithHandle

func (e *ContainerEvent) WithHandle(handle func(*Container) error) *ContainerEvent

WithHandle sets the event's handler.

type ContainerExecConfig

type ContainerExecConfig struct {
	// ExecID identifies the ID of this exec
	ExecID string

	// contains the config of this exec
	types.ExecCreateConfig

	// Save the container's id into exec config.
	ContainerID string

	// ExitCode records the exit code of a exec process.
	ExitCode int64

	// Running represents whether the exec process is running inside container.
	Running bool

	// Error represents the exec process response error.
	Error error

	// WaitForClean means exec process can be removed.
	WaitForClean bool
}

ContainerExecConfig is the config a process exec.

type ContainerFilter

type ContainerFilter func(*Container) bool

ContainerFilter defines a function to filter container in the store.

type ContainerListOption

type ContainerListOption struct {
	All bool
}

ContainerListOption wraps the container list interface params.

type ContainerManager

type ContainerManager struct {
	// Store stores containers in Backend store.
	// Element operated in store must has a type of *Container.
	// By default, Store will use local filesystem with json format to store containers.
	Store *meta.Store

	// Client is used to interact with containerd.
	Client ctrd.APIClient

	// NameToID stores relations between container's name and ID.
	// It is used to get container ID via container name.
	NameToID *collect.SafeMap

	ImageMgr      ImageMgr
	VolumeMgr     VolumeMgr
	NetworkMgr    NetworkMgr
	IOs           *containerio.Cache
	ExecProcesses *collect.SafeMap

	Config *config.Config
	// contains filtered or unexported fields
}

ContainerManager is the default implement of interface ContainerMgr.

func NewContainerManager

func NewContainerManager(ctx context.Context, store *meta.Store, cli ctrd.APIClient, imgMgr ImageMgr, volMgr VolumeMgr, cfg *config.Config, contPlugin plugins.ContainerPlugin) (*ContainerManager, error)

NewContainerManager creates a brand new container manager.

func (*ContainerManager) Attach

func (mgr *ContainerManager) Attach(ctx context.Context, name string, attach *AttachConfig) error

Attach attachs a container's io.

func (*ContainerManager) Connect

func (mgr *ContainerManager) Connect(ctx context.Context, name string, networkIDOrName string, epConfig *types.EndpointSettings) error

Connect is used to connect a container to a network.

func (*ContainerManager) Create

Create checks passed in parameters and create a Container object whose status is set at Created.

func (*ContainerManager) CreateExec

func (mgr *ContainerManager) CreateExec(ctx context.Context, name string, config *types.ExecCreateConfig) (string, error)

CreateExec creates exec process's meta data.

func (*ContainerManager) Disconnect

func (mgr *ContainerManager) Disconnect(ctx context.Context, containerName, networkName string, force bool) error

Disconnect disconnects the given container from given network

func (*ContainerManager) Get

func (mgr *ContainerManager) Get(ctx context.Context, name string) (*Container, error)

Get the detailed information of container.

func (*ContainerManager) GetExecConfig

func (mgr *ContainerManager) GetExecConfig(ctx context.Context, execid string) (*ContainerExecConfig, error)

GetExecConfig returns execonfig of a exec process inside container.

func (*ContainerManager) InspectExec

func (mgr *ContainerManager) InspectExec(ctx context.Context, execid string) (*types.ContainerExecInspect, error)

InspectExec returns low-level information about exec command.

func (*ContainerManager) List

func (mgr *ContainerManager) List(ctx context.Context, filter ContainerFilter, option *ContainerListOption) ([]*Container, error)

List returns the container's list.

func (*ContainerManager) Logs

func (mgr *ContainerManager) Logs(ctx context.Context, name string, logOpt *types.ContainerLogsOptions) (<-chan *logger.LogMessage, bool, error)

Logs is used to return log created by the container.

func (*ContainerManager) Pause

func (mgr *ContainerManager) Pause(ctx context.Context, name string) error

Pause pauses a running container.

func (*ContainerManager) Remove

func (mgr *ContainerManager) Remove(ctx context.Context, name string, options *types.ContainerRemoveOptions) error

Remove removes a container, it may be running or stopped and so on.

func (*ContainerManager) Rename

func (mgr *ContainerManager) Rename(ctx context.Context, oldName, newName string) error

Rename renames a container.

func (*ContainerManager) Resize

func (mgr *ContainerManager) Resize(ctx context.Context, name string, opts types.ResizeOptions) error

Resize resizes the size of a container tty.

func (*ContainerManager) Restart

func (mgr *ContainerManager) Restart(ctx context.Context, name string, timeout int64) error

Restart restarts a running container.

func (*ContainerManager) Restore

func (mgr *ContainerManager) Restore(ctx context.Context) error

Restore containers from meta store to memory and recover those container.

func (*ContainerManager) Start

func (mgr *ContainerManager) Start(ctx context.Context, id, detachKeys string) (err error)

Start a pre created Container.

func (*ContainerManager) StartExec

func (mgr *ContainerManager) StartExec(ctx context.Context, execid string, config *types.ExecStartConfig, attach *AttachConfig) error

StartExec executes a new process in container.

func (*ContainerManager) Stop

func (mgr *ContainerManager) Stop(ctx context.Context, name string, timeout int64) error

Stop stops a running container.

func (*ContainerManager) Top

func (mgr *ContainerManager) Top(ctx context.Context, name string, psArgs string) (*types.ContainerProcessList, error)

Top lists the processes running inside of the given container

func (*ContainerManager) Unpause

func (mgr *ContainerManager) Unpause(ctx context.Context, name string) error

Unpause unpauses a paused container.

func (*ContainerManager) Update

func (mgr *ContainerManager) Update(ctx context.Context, name string, config *types.UpdateConfig) error

Update updates the configurations of a container.

func (*ContainerManager) Upgrade

func (mgr *ContainerManager) Upgrade(ctx context.Context, name string, config *types.ContainerUpgradeConfig) error

Upgrade upgrades a container with new image and args.

func (*ContainerManager) Wait

Wait stops processing until the given container is stopped.

type ContainerMgr

type ContainerMgr interface {

	// Restore containers from meta store to memory and recover those container.
	Restore(ctx context.Context) error

	// Create a new container.
	Create(ctx context.Context, name string, config *types.ContainerCreateConfig) (*types.ContainerCreateResp, error)

	// Get the detailed information of container.
	Get(ctx context.Context, name string) (*Container, error)

	// List returns the list of containers.
	List(ctx context.Context, filter ContainerFilter, option *ContainerListOption) ([]*Container, error)

	// Start a container.
	Start(ctx context.Context, id, detachKeys string) error

	// Stop a container.
	Stop(ctx context.Context, name string, timeout int64) error

	// Restart restart a running container.
	Restart(ctx context.Context, name string, timeout int64) error

	// Pause a container.
	Pause(ctx context.Context, name string) error

	// Unpause a container.
	Unpause(ctx context.Context, name string) error

	// Attach a container.
	Attach(ctx context.Context, name string, attach *AttachConfig) error

	// Rename renames a container.
	Rename(ctx context.Context, oldName string, newName string) error

	// Update updates the configurations of a container.
	Update(ctx context.Context, name string, config *types.UpdateConfig) error

	// Upgrade upgrades a container with new image and args.
	Upgrade(ctx context.Context, name string, config *types.ContainerUpgradeConfig) error

	// Top lists the processes running inside of the given container
	Top(ctx context.Context, name string, psArgs string) (*types.ContainerProcessList, error)

	// Resize resizes the size of container tty.
	Resize(ctx context.Context, name string, opts types.ResizeOptions) error

	// Remove removes a container, it may be running or stopped and so on.
	Remove(ctx context.Context, name string, option *types.ContainerRemoveOptions) error

	// Wait stops processing until the given container is stopped.
	Wait(ctx context.Context, name string) (types.ContainerWaitOKBody, error)

	// CreateExec creates exec process's environment.
	CreateExec(ctx context.Context, name string, config *types.ExecCreateConfig) (string, error)

	// StartExec executes a new process in container.
	StartExec(ctx context.Context, execid string, config *types.ExecStartConfig, attach *AttachConfig) error

	// InspectExec returns low-level information about exec command.
	InspectExec(ctx context.Context, execid string) (*types.ContainerExecInspect, error)

	// GetExecConfig returns execonfig of a exec process inside container.
	GetExecConfig(ctx context.Context, execid string) (*ContainerExecConfig, error)

	// Connect is used to connect a container to a network.
	Connect(ctx context.Context, name string, networkIDOrName string, epConfig *types.EndpointSettings) error

	// Disconnect disconnects the given container from
	// given network
	Disconnect(ctx context.Context, containerName, networkName string, force bool) error

	// Logs is used to return log created by the container.
	Logs(ctx context.Context, name string, logsOpt *types.ContainerLogsOptions) (<-chan *logger.LogMessage, bool, error)
}

ContainerMgr as an interface defines all operations against container. ContainerMgr's functionality could be divided into three parts: 1. regular container management; 2. container exec management; 3. container network management.

type ContainerMonitor

type ContainerMonitor struct {
	// contains filtered or unexported fields
}

ContainerMonitor is used to monitor contianer's event.

func NewContainerMonitor

func NewContainerMonitor() *ContainerMonitor

NewContainerMonitor returns one ContainerMonitor object.

func (*ContainerMonitor) PostEvent

func (m *ContainerMonitor) PostEvent(ev *ContainerEvent)

PostEvent sends a event to monitor.

type ContainerRestartPolicy

type ContainerRestartPolicy types.RestartPolicy

ContainerRestartPolicy represents the policy is used to manage container.

func (ContainerRestartPolicy) IsAlways

func (p ContainerRestartPolicy) IsAlways() bool

IsAlways returns the container need to be restarted or not.

func (ContainerRestartPolicy) IsNone

func (p ContainerRestartPolicy) IsNone() bool

IsNone returns the container don't need to be restarted or not.

type ImageManager

type ImageManager struct {
	// DefaultRegistry is the default registry of daemon.
	// When users do not specify image repo in image name,
	// daemon will automatically pull images with DefaultRegistry and DefaultNamespace.
	DefaultRegistry string

	// DefaultNamespace is the default namespace used in DefaultRegistry.
	DefaultNamespace string
	// contains filtered or unexported fields
}

ImageManager is an implementation of interface ImageMgr.

func NewImageManager

func NewImageManager(cfg *config.Config, client ctrd.APIClient) (*ImageManager, error)

NewImageManager initializes a brand new image manager.

func (*ImageManager) AddTag

func (mgr *ImageManager) AddTag(ctx context.Context, sourceImage string, targetTag string) error

AddTag adds the tag reference to the source image.

NOTE(fuwei): AddTag hacks the containerd metadata boltdb, which we add the reference into the containerd metadata boltdb with the existing image content. It means that the "tag" is primary reference in the pouchd.

For example,

pouch tag A B
pouch rmi A

The B is still there.

func (*ImageManager) CheckReference

func (mgr *ImageManager) CheckReference(ctx context.Context, idOrRef string) (actualID digest.Digest, actualRef reference.Named, primaryRef reference.Named, err error)

CheckReference returns image ID and actual reference.

func (*ImageManager) GetImage

func (mgr *ImageManager) GetImage(ctx context.Context, idOrRef string) (*types.ImageInfo, error)

GetImage returns imageInfo by reference.

func (*ImageManager) ListImages

func (mgr *ImageManager) ListImages(ctx context.Context, filter ...string) ([]types.ImageInfo, error)

ListImages lists images stored by containerd.

func (*ImageManager) LoadImage

func (mgr *ImageManager) LoadImage(ctx context.Context, imageName string, tarstream io.ReadCloser) error

LoadImage loads images by the oci.v1 format tarstream.

func (*ImageManager) PullImage

func (mgr *ImageManager) PullImage(ctx context.Context, ref string, authConfig *types.AuthConfig, out io.Writer) error

PullImage pulls images from specified registry.

func (*ImageManager) RemoveImage

func (mgr *ImageManager) RemoveImage(ctx context.Context, idOrRef string, force bool) error

RemoveImage deletes a reference.

NOTE: if the reference is short ID or ID, should remove all the references.

func (*ImageManager) SearchImages

func (mgr *ImageManager) SearchImages(ctx context.Context, name string, registry string) ([]types.SearchResultItem, error)

SearchImages searches imaged from specified registry.

type ImageMgr

type ImageMgr interface {
	// PullImage pulls images from specified registry.
	PullImage(ctx context.Context, ref string, authConfig *types.AuthConfig, out io.Writer) error

	// GetImage returns imageInfo by reference or id.
	GetImage(ctx context.Context, idOrRef string) (*types.ImageInfo, error)

	// ListImages lists images stored by containerd.
	ListImages(ctx context.Context, filter ...string) ([]types.ImageInfo, error)

	// Search Images from specified registry.
	SearchImages(ctx context.Context, name string, registry string) ([]types.SearchResultItem, error)

	// RemoveImage deletes an image by reference.
	RemoveImage(ctx context.Context, idOrRef string, force bool) error

	// AddTag creates target ref for source image.
	AddTag(ctx context.Context, sourceImage string, targetRef string) error

	// CheckReference returns imageID, actual reference and primary reference.
	CheckReference(ctx context.Context, idOrRef string) (digest.Digest, reference.Named, reference.Named, error)

	// LoadImage creates a set of images by tarstream.
	LoadImage(ctx context.Context, imageName string, tarstream io.ReadCloser) error
}

ImageMgr as an interface defines all operations against images.

type ImageRemoveOption

type ImageRemoveOption struct {
	Force bool
}

ImageRemoveOption wraps the image remove interface params.

type NetworkManager

type NetworkManager struct {
	// contains filtered or unexported fields
}

NetworkManager is the default implement of interface NetworkMgr.

func NewNetworkManager

func NewNetworkManager(cfg *config.Config, store *meta.Store, ctrMgr ContainerMgr) (*NetworkManager, error)

NewNetworkManager creates a brand new network manager.

func (*NetworkManager) Controller

func (nm *NetworkManager) Controller() libnetwork.NetworkController

Controller returns the network controller.

func (*NetworkManager) Create

Create is used to create network.

func (*NetworkManager) EndpointCreate

func (nm *NetworkManager) EndpointCreate(ctx context.Context, endpoint *types.Endpoint) (string, error)

EndpointCreate is used to create network endpoint.

func (*NetworkManager) EndpointInfo

func (nm *NetworkManager) EndpointInfo(ctx context.Context, name string) (*types.Endpoint, error)

EndpointInfo returns the information of endpoint that specified name/id.

func (*NetworkManager) EndpointList

func (nm *NetworkManager) EndpointList(ctx context.Context) ([]*types.Endpoint, error)

EndpointList returns all endpoints.

func (*NetworkManager) EndpointRemove

func (nm *NetworkManager) EndpointRemove(ctx context.Context, endpoint *types.Endpoint) error

EndpointRemove is used to remove network endpoint.

func (*NetworkManager) Get

func (nm *NetworkManager) Get(ctx context.Context, idName string) (*types.Network, error)

Get returns the information of network for specified string that represent network name or ID. If network name is given, the network with same name is returned. If prefix of network ID is given, the network with same prefix is returned.

func (*NetworkManager) GetNetworkByName

func (nm *NetworkManager) GetNetworkByName(name string) (*types.Network, error)

GetNetworkByName returns the information of network that specified name.

func (*NetworkManager) GetNetworkByPartialID

func (nm *NetworkManager) GetNetworkByPartialID(partialID string) (*types.Network, error)

GetNetworkByPartialID returns the information of network that ID starts with the given prefix. If there are not matching networks, it fails with ErrNotfound. If there are multiple matching networks, it fails with ErrTooMany.

func (*NetworkManager) GetNetworksByPartialID

func (nm *NetworkManager) GetNetworksByPartialID(partialID string) []*types.Network

GetNetworksByPartialID returns a list of networks that ID starts with the given prefix.

func (*NetworkManager) List

func (nm *NetworkManager) List(ctx context.Context, labels map[string]string) ([]*types.Network, error)

List returns all networks on this host.

func (*NetworkManager) Remove

func (nm *NetworkManager) Remove(ctx context.Context, name string) error

Remove is used to delete an existing network.

type NetworkMgr

type NetworkMgr interface {
	// Create is used to create network.
	Create(ctx context.Context, create apitypes.NetworkCreateConfig) (*types.Network, error)

	// Get returns the information of network that specified name/id.
	Get(ctx context.Context, name string) (*types.Network, error)

	// List returns all networks on this host.
	List(ctx context.Context, labels map[string]string) ([]*types.Network, error)

	// NetworkRemove is used to delete an existing network.
	Remove(ctx context.Context, name string) error

	// EndpointCreate is used to create network endpoint.
	EndpointCreate(ctx context.Context, endpoint *types.Endpoint) (string, error)

	// EndpointInfo returns the information of endpoint that specified name/id.
	EndpointInfo(ctx context.Context, name string) (*types.Endpoint, error)

	// EndpointList returns all endpoints.
	EndpointList(ctx context.Context) ([]*types.Endpoint, error)

	// EndpointRemove is used to remove network endpoint.
	EndpointRemove(ctx context.Context, endpoint *types.Endpoint) error

	// Controller returns the network controller.
	Controller() libnetwork.NetworkController
}

NetworkMgr defines interface to manage container network.

type SpecWrapper

type SpecWrapper struct {
	// contains filtered or unexported fields
}

SpecWrapper wraps the container's specs and add manager operations.

type SystemManager

type SystemManager struct {
	// contains filtered or unexported fields
}

SystemManager is an instance of system management.

func NewSystemManager

func NewSystemManager(cfg *config.Config, store *meta.Store, imageManager ImageMgr) (*SystemManager, error)

NewSystemManager creates a brand new system manager.

func (*SystemManager) Auth

func (mgr *SystemManager) Auth(auth *types.AuthConfig) (string, error)

Auth to log in to a registry.

func (*SystemManager) Info

func (mgr *SystemManager) Info() (types.SystemInfo, error)

Info shows system information of daemon.

func (*SystemManager) UpdateDaemon

func (mgr *SystemManager) UpdateDaemon(cfg *types.DaemonUpdateConfig) error

UpdateDaemon updates config of daemon, only label and image proxy are allowed.

func (*SystemManager) Version

func (mgr *SystemManager) Version() (types.SystemVersion, error)

Version shows version of daemon.

type SystemMgr

type SystemMgr interface {
	Info() (types.SystemInfo, error)
	Version() (types.SystemVersion, error)
	Auth(*types.AuthConfig) (string, error)
	UpdateDaemon(*types.DaemonUpdateConfig) error
}

SystemMgr as an interface defines all operations against host.

type VolumeManager

type VolumeManager struct {
	// contains filtered or unexported fields
}

VolumeManager is the default implement of interface VolumeMgr.

func NewVolumeManager

func NewVolumeManager(cfg volume.Config) (*VolumeManager, error)

NewVolumeManager creates a brand new volume manager.

func (*VolumeManager) Attach

func (vm *VolumeManager) Attach(ctx context.Context, name string, options map[string]string) (*types.Volume, error)

Attach is used to bind a volume to container.

func (*VolumeManager) Create

func (vm *VolumeManager) Create(ctx context.Context, name, driver string, options, labels map[string]string) (*types.Volume, error)

Create is used to create volume.

func (*VolumeManager) Detach

func (vm *VolumeManager) Detach(ctx context.Context, name string, options map[string]string) (*types.Volume, error)

Detach is used to unbind a volume from container.

func (*VolumeManager) Get

func (vm *VolumeManager) Get(ctx context.Context, name string) (*types.Volume, error)

Get returns the information of volume that specified name/id.

func (*VolumeManager) List

func (vm *VolumeManager) List(ctx context.Context, labels map[string]string) ([]*types.Volume, error)

List returns all volumes on this host.

func (*VolumeManager) Path

func (vm *VolumeManager) Path(ctx context.Context, name string) (string, error)

Path returns the mount path of volume.

func (*VolumeManager) Remove

func (vm *VolumeManager) Remove(ctx context.Context, name string) error

Remove is used to delete an existing volume.

type VolumeMgr

type VolumeMgr interface {
	// Create is used to create volume.
	Create(ctx context.Context, name, driver string, options, labels map[string]string) (*types.Volume, error)

	// Get returns the information of volume that specified name/id.
	Get(ctx context.Context, name string) (*types.Volume, error)

	// List returns all volumes on this host.
	List(ctx context.Context, labels map[string]string) ([]*types.Volume, error)

	// Remove is used to delete an existing volume.
	Remove(ctx context.Context, name string) error

	// Path returns the mount path of volume.
	Path(ctx context.Context, name string) (string, error)

	// Attach is used to bind a volume to container.
	Attach(ctx context.Context, name string, options map[string]string) (*types.Volume, error)

	// Detach is used to unbind a volume from container.
	Detach(ctx context.Context, name string, options map[string]string) (*types.Volume, error)
}

VolumeMgr defines interface to manage container volume.

Jump to

Keyboard shortcuts

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