container

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2016 License: Apache-2.0 Imports: 43 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AttachStreams

func AttachStreams(ctx context.Context, streamConfig *runconfig.StreamConfig, openStdin, stdinOnce, tty bool, stdin io.ReadCloser, stdout io.Writer, stderr io.Writer, keys []byte) chan error

AttachStreams connects streams to a TTY. Used by exec too. Should this move somewhere else?

func IsValidStateString

func IsValidStateString(s string) bool

IsValidStateString checks if the provided string is a valid container state or not.

Types

type CommonContainer

type CommonContainer struct {
	*runconfig.StreamConfig
	// embed for Container to support states directly.
	*State          `json:"State"` // Needed for remote api version <= 1.11
	Root            string         `json:"-"` // Path to the "home" of the container, including metadata.
	BaseFS          string         `json:"-"` // Path to the graphdriver mountpoint
	RWLayer         layer.RWLayer  `json:"-"`
	ID              string
	Created         time.Time
	Path            string
	Args            []string
	Config          *containertypes.Config
	ImageID         image.ID `json:"Image"`
	NetworkSettings *network.Settings
	LogPath         string
	Name            string
	Driver          string
	// MountLabel contains the options for the 'mount' command
	MountLabel             string
	ProcessLabel           string
	RestartCount           int
	HasBeenStartedBefore   bool
	HasBeenManuallyStopped bool // used for unless-stopped restart policy
	MountPoints            map[string]*volume.MountPoint
	HostConfig             *containertypes.HostConfig `json:"-"` // do not serialize the host config in the json, otherwise we'll make the container unportable
	ExecCommands           *exec.Store                `json:"-"`
	// logDriver for closing
	LogDriver logger.Logger  `json:"-"`
	LogCopier *logger.Copier `json:"-"`
	// contains filtered or unexported fields
}

CommonContainer holds the fields for a container which are applicable across all platforms supported by the daemon.

type History

type History []*Container

History is a convenience type for storing a list of containers, sorted by creation date in descendant order.

func (*History) Add

func (history *History) Add(container *Container)

Add the given container to history.

func (*History) Len

func (history *History) Len() int

Len returns the number of containers in the history.

func (*History) Less

func (history *History) Less(i, j int) bool

Less compares two containers and returns true if the second one was created before the first one.

func (*History) Swap

func (history *History) Swap(i, j int)

Swap switches containers i and j positions in the history.

type Mount added in v1.11.0

type Mount struct {
	Source      string `json:"source"`
	Destination string `json:"destination"`
	Writable    bool   `json:"writable"`
	Data        string `json:"data"`
	Propagation string `json:"mountpropagation"`
}

Mount contains information for a mount operation.

type State

type State struct {
	sync.Mutex
	// FIXME: Why do we have both paused and running if a
	// container cannot be paused and running at the same time?
	Running           bool
	Paused            bool
	Restarting        bool
	OOMKilled         bool
	RemovalInProgress bool // Not need for this to be persistent on disk.
	Dead              bool
	Pid               int
	ExitCode          int
	Error             string // contains last known error when starting the container
	StartedAt         time.Time
	FinishedAt        time.Time
	// contains filtered or unexported fields
}

State holds the current container state, and has methods to get and set the state. Container has an embed, which allows all of the functions defined against State to run against Container.

func NewState

func NewState() *State

NewState creates a default state object with a fresh channel for state changes.

func (*State) GetPID

func (s *State) GetPID() int

GetPID holds the process id of a container.

func (*State) IsPaused

func (s *State) IsPaused() bool

IsPaused returns whether the container is paused or not.

func (*State) IsRestarting

func (s *State) IsRestarting() bool

IsRestarting returns whether the container is restarting or not.

func (*State) IsRunning

func (s *State) IsRunning() bool

IsRunning returns whether the running flag is set. Used by Container to check whether a container is running.

func (*State) ResetRemovalInProgress

func (s *State) ResetRemovalInProgress()

ResetRemovalInProgress make the RemovalInProgress state to false.

func (*State) SetDead

func (s *State) SetDead()

SetDead sets the container state to "dead"

func (*State) SetError

func (s *State) SetError(err error)

SetError sets the container's error state. This is useful when we want to know the error that occurred when container transits to another state when inspecting it

func (*State) SetRemovalInProgress

func (s *State) SetRemovalInProgress() bool

SetRemovalInProgress sets the container state as being removed. It returns true if the container was already in that state.

func (*State) SetRestarting

func (s *State) SetRestarting(exitStatus *ExitStatus)

SetRestarting sets the container state to "restarting". It also sets the container PID to 0.

func (*State) SetRestartingLocking

func (s *State) SetRestartingLocking(exitStatus *ExitStatus)

SetRestartingLocking is when docker handles the auto restart of containers when they are in the middle of a stop and being restarted again

func (*State) SetRunning

func (s *State) SetRunning(pid int, initial bool)

SetRunning sets the state of the container to "running".

func (*State) SetStopped

func (s *State) SetStopped(exitStatus *ExitStatus)

SetStopped sets the container state to "stopped" without locking.

func (*State) SetStoppedLocking

func (s *State) SetStoppedLocking(exitStatus *ExitStatus)

SetStoppedLocking locks the container state is sets it to "stopped".

func (*State) StateString

func (s *State) StateString() string

StateString returns a single string to describe state

func (*State) String

func (s *State) String() string

String returns a human-readable description of the state

func (*State) WaitRunning added in v1.11.0

func (s *State) WaitRunning(timeout time.Duration) (int, error)

WaitRunning waits until state is running. If state is already running it returns immediately. If you want wait forever you must supply negative timeout. Returns pid, that was passed to SetRunning.

func (*State) WaitStop

func (s *State) WaitStop(timeout time.Duration) (int, error)

WaitStop waits until state is stopped. If state already stopped it returns immediately. If you want wait forever you must supply negative timeout. Returns exit code, that was passed to SetStoppedLocking

type Store

type Store interface {
	// Add appends a new container to the store.
	Add(string, *Container)
	// Get returns a container from the store by the identifier it was stored with.
	Get(string) *Container
	// Delete removes a container from the store by the identifier it was stored with.
	Delete(string)
	// List returns a list of containers from the store.
	List() []*Container
	// Size returns the number of containers in the store.
	Size() int
	// First returns the first container found in the store by a given filter.
	First(StoreFilter) *Container
	// ApplyAll calls the reducer function with every container in the store.
	ApplyAll(StoreReducer)
}

Store defines an interface that any container store must implement.

func NewMemoryStore

func NewMemoryStore() Store

NewMemoryStore initializes a new memory store.

type StoreFilter

type StoreFilter func(*Container) bool

StoreFilter defines a function to filter container in the store.

type StoreReducer

type StoreReducer func(*Container)

StoreReducer defines a function to manipulate containers in the store

Jump to

Keyboard shortcuts

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