Documentation ¶
Index ¶
- func AttachStreams(ctx context.Context, streamConfig *runconfig.StreamConfig, ...) chan error
- func IsValidStateString(s string) bool
- type CommonContainer
- type History
- type Mount
- type State
- func (s *State) GetPID() int
- func (s *State) IsPaused() bool
- func (s *State) IsRestarting() bool
- func (s *State) IsRunning() bool
- func (s *State) ResetRemovalInProgress()
- func (s *State) SetDead()
- func (s *State) SetError(err error)
- func (s *State) SetRemovalInProgress() bool
- func (s *State) SetRestarting(exitStatus *ExitStatus)
- func (s *State) SetRestartingLocking(exitStatus *ExitStatus)
- func (s *State) SetRunning(pid int, initial bool)
- func (s *State) SetStopped(exitStatus *ExitStatus)
- func (s *State) SetStoppedLocking(exitStatus *ExitStatus)
- func (s *State) StateString() string
- func (s *State) String() string
- func (s *State) WaitRunning(timeout time.Duration) (int, error)
- func (s *State) WaitStop(timeout time.Duration) (int, error)
- type Store
- type StoreFilter
- type StoreReducer
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 ¶
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.
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) IsRestarting ¶
IsRestarting returns whether the container is restarting or not.
func (*State) IsRunning ¶
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) SetError ¶
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 ¶
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 ¶
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 ¶
StateString returns a single string to describe state
func (*State) WaitRunning ¶ added in v1.11.0
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.
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.
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