container

package
v27.3.0-rc.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const MinimumDuration = 1 * time.Millisecond

MinimumDuration puts a minimum on user configured duration. This is to prevent API error on time unit. For example, API may set 3 as healthcheck interval with intention of 3 seconds, but Docker interprets it as 3 nanoseconds.

Variables

This section is empty.

Functions

func ValidateRestartPolicy

func ValidateRestartPolicy(policy RestartPolicy) error

ValidateRestartPolicy validates the given RestartPolicy.

Types

type AttachOptions

type AttachOptions struct {
	Stream     bool
	Stdin      bool
	Stdout     bool
	Stderr     bool
	DetachKeys string
	Logs       bool
}

AttachOptions holds parameters to attach to a container.

type BlkioStatEntry

type BlkioStatEntry struct {
	Major uint64 `json:"major"`
	Minor uint64 `json:"minor"`
	Op    string `json:"op"`
	Value uint64 `json:"value"`
}

BlkioStatEntry is one small entity to store a piece of Blkio stats Not used on Windows.

type BlkioStats

type BlkioStats struct {
	// number of bytes transferred to and from the block device
	IoServiceBytesRecursive []BlkioStatEntry `json:"io_service_bytes_recursive"`
	IoServicedRecursive     []BlkioStatEntry `json:"io_serviced_recursive"`
	IoQueuedRecursive       []BlkioStatEntry `json:"io_queue_recursive"`
	IoServiceTimeRecursive  []BlkioStatEntry `json:"io_service_time_recursive"`
	IoWaitTimeRecursive     []BlkioStatEntry `json:"io_wait_time_recursive"`
	IoMergedRecursive       []BlkioStatEntry `json:"io_merged_recursive"`
	IoTimeRecursive         []BlkioStatEntry `json:"io_time_recursive"`
	SectorsRecursive        []BlkioStatEntry `json:"sectors_recursive"`
}

BlkioStats stores All IO service stats for data read and write. This is a Linux specific structure as the differences between expressing block I/O on Windows and Linux are sufficiently significant to make little sense attempting to morph into a combined structure.

type CPUStats

type CPUStats struct {
	// CPU Usage. Linux and Windows.
	CPUUsage CPUUsage `json:"cpu_usage"`

	// System Usage. Linux only.
	SystemUsage uint64 `json:"system_cpu_usage,omitempty"`

	// Online CPUs. Linux only.
	OnlineCPUs uint32 `json:"online_cpus,omitempty"`

	// Throttling Data. Linux only.
	ThrottlingData ThrottlingData `json:"throttling_data,omitempty"`
}

CPUStats aggregates and wraps all CPU related info of container

type CPUUsage

type CPUUsage struct {
	// Total CPU time consumed.
	// Units: nanoseconds (Linux)
	// Units: 100's of nanoseconds (Windows)
	TotalUsage uint64 `json:"total_usage"`

	// Total CPU time consumed per core (Linux). Not used on Windows.
	// Units: nanoseconds.
	PercpuUsage []uint64 `json:"percpu_usage,omitempty"`

	// Time spent by tasks of the cgroup in kernel mode (Linux).
	// Time spent by all container processes in kernel mode (Windows).
	// Units: nanoseconds (Linux).
	// Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers.
	UsageInKernelmode uint64 `json:"usage_in_kernelmode"`

	// Time spent by tasks of the cgroup in user mode (Linux).
	// Time spent by all container processes in user mode (Windows).
	// Units: nanoseconds (Linux).
	// Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers
	UsageInUsermode uint64 `json:"usage_in_usermode"`
}

CPUUsage stores All CPU stats aggregated since container inception.

type CgroupSpec

type CgroupSpec string

CgroupSpec represents the cgroup to use for the container.

func (CgroupSpec) Container

func (c CgroupSpec) Container() (idOrName string)

Container returns the ID or name of the container whose cgroup will be used.

func (CgroupSpec) IsContainer

func (c CgroupSpec) IsContainer() bool

IsContainer indicates whether the container is using another container cgroup

func (CgroupSpec) Valid

func (c CgroupSpec) Valid() bool

Valid indicates whether the cgroup spec is valid.

type CgroupnsMode

type CgroupnsMode string

CgroupnsMode represents the cgroup namespace mode of the container

const (
	CgroupnsModeEmpty   CgroupnsMode = ""
	CgroupnsModePrivate CgroupnsMode = "private"
	CgroupnsModeHost    CgroupnsMode = "host"
)

cgroup namespace modes for containers

func (CgroupnsMode) IsEmpty

func (c CgroupnsMode) IsEmpty() bool

IsEmpty indicates whether the container cgroup namespace mode is unset

func (CgroupnsMode) IsHost

func (c CgroupnsMode) IsHost() bool

IsHost indicates whether the container shares the host's cgroup namespace

func (CgroupnsMode) IsPrivate

func (c CgroupnsMode) IsPrivate() bool

IsPrivate indicates whether the container uses its own private cgroup namespace

func (CgroupnsMode) Valid

func (c CgroupnsMode) Valid() bool

Valid indicates whether the cgroup namespace mode is valid

type ChangeType

type ChangeType uint8

ChangeType Kind of change

Can be one of:

- `0`: Modified ("C") - `1`: Added ("A") - `2`: Deleted ("D")

swagger:model ChangeType

const (
	// ChangeModify represents the modify operation.
	ChangeModify ChangeType = 0
	// ChangeAdd represents the add operation.
	ChangeAdd ChangeType = 1
	// ChangeDelete represents the delete operation.
	ChangeDelete ChangeType = 2
)

func (ChangeType) String

func (ct ChangeType) String() string

type CommitOptions

type CommitOptions struct {
	Reference string
	Comment   string
	Author    string
	Changes   []string
	Pause     bool
	Config    *Config
}

CommitOptions holds parameters to commit changes into a container.

type Config

type Config struct {
	Hostname        string              // Hostname
	Domainname      string              // Domainname
	User            string              // User that will run the command(s) inside the container, also support user:group
	AttachStdin     bool                // Attach the standard input, makes possible user interaction
	AttachStdout    bool                // Attach the standard output
	AttachStderr    bool                // Attach the standard error
	ExposedPorts    nat.PortSet         `json:",omitempty"` // List of exposed ports
	Tty             bool                // Attach standard streams to a tty, including stdin if it is not closed.
	OpenStdin       bool                // Open stdin
	StdinOnce       bool                // If true, close stdin after the 1 attached client disconnects.
	Env             []string            // List of environment variable to set in the container
	Cmd             strslice.StrSlice   // Command to run when starting the container
	Healthcheck     *HealthConfig       `json:",omitempty"` // Healthcheck describes how to check the container is healthy
	ArgsEscaped     bool                `json:",omitempty"` // True if command is already escaped (meaning treat as a command line) (Windows specific).
	Image           string              // Name of the image as it was passed by the operator (e.g. could be symbolic)
	Volumes         map[string]struct{} // List of volumes (mounts) used for the container
	WorkingDir      string              // Current directory (PWD) in the command will be launched
	Entrypoint      strslice.StrSlice   // Entrypoint to run when starting the container
	NetworkDisabled bool                `json:",omitempty"` // Is network disabled
	// Mac Address of the container.
	//
	// Deprecated: this field is deprecated since API v1.44. Use EndpointSettings.MacAddress instead.
	MacAddress  string            `json:",omitempty"`
	OnBuild     []string          // ONBUILD metadata that were defined on the image Dockerfile
	Labels      map[string]string // List of labels set to this container
	StopSignal  string            `json:",omitempty"` // Signal to stop a container
	StopTimeout *int              `json:",omitempty"` // Timeout (in seconds) to stop a container
	Shell       strslice.StrSlice `json:",omitempty"` // Shell for shell-form of RUN, CMD, ENTRYPOINT
}

Config contains the configuration data about a container. It should hold only portable information about the container. Here, "portable" means "independent from the host we are running on". Non-portable information *should* appear in HostConfig. All fields added to this struct must be marked `omitempty` to keep getting predictable hashes from the old `v1Compatibility` configuration.

type ContainerTopOKBody

type ContainerTopOKBody struct {

	// Each process running in the container, where each is process
	// is an array of values corresponding to the titles.
	//
	// Required: true
	Processes [][]string `json:"Processes"`

	// The ps column titles
	// Required: true
	Titles []string `json:"Titles"`
}

ContainerTopOKBody OK response to ContainerTop operation swagger:model ContainerTopOKBody

type ContainerUpdateOKBody

type ContainerUpdateOKBody struct {

	// warnings
	// Required: true
	Warnings []string `json:"Warnings"`
}

ContainerUpdateOKBody OK response to ContainerUpdate operation swagger:model ContainerUpdateOKBody

type CopyToContainerOptions

type CopyToContainerOptions struct {
	AllowOverwriteDirWithFile bool
	CopyUIDGID                bool
}

CopyToContainerOptions holds information about files to copy into a container

type CreateRequest

type CreateRequest struct {
	*Config
	HostConfig       *HostConfig               `json:"HostConfig,omitempty"`
	NetworkingConfig *network.NetworkingConfig `json:"NetworkingConfig,omitempty"`
}

CreateRequest is the request message sent to the server for container create calls. It is a config wrapper that holds the container Config (portable) and the corresponding HostConfig (non-portable) and network.NetworkingConfig.

type CreateResponse

type CreateResponse struct {

	// The ID of the created container
	// Required: true
	ID string `json:"Id"`

	// Warnings encountered when creating the container
	// Required: true
	Warnings []string `json:"Warnings"`
}

CreateResponse ContainerCreateResponse

OK response to ContainerCreate operation swagger:model CreateResponse

type DeviceMapping

type DeviceMapping struct {
	PathOnHost        string
	PathInContainer   string
	CgroupPermissions string
}

DeviceMapping represents the device mapping between the host and the container.

type DeviceRequest

type DeviceRequest struct {
	Driver       string            // Name of device driver
	Count        int               // Number of devices to request (-1 = All)
	DeviceIDs    []string          // List of device IDs as recognizable by the device driver
	Capabilities [][]string        // An OR list of AND lists of device capabilities (e.g. "gpu")
	Options      map[string]string // Options to pass onto the device driver
}

DeviceRequest represents a request for devices from a device driver. Used by GPU device drivers.

type ExecAttachOptions

type ExecAttachOptions = ExecStartOptions

ExecAttachOptions is a temp struct used by execAttach.

TODO(thaJeztah): make this a separate type; ContainerExecAttach does not use the Detach option, and cannot run detached.

type ExecInspect

type ExecInspect struct {
	ExecID      string `json:"ID"`
	ContainerID string
	Running     bool
	ExitCode    int
	Pid         int
}

ExecInspect holds information returned by exec inspect.

type ExecOptions

type ExecOptions struct {
	User         string   // User that will run the command
	Privileged   bool     // Is the container in privileged mode
	Tty          bool     // Attach standard streams to a tty.
	ConsoleSize  *[2]uint `json:",omitempty"` // Initial console size [height, width]
	AttachStdin  bool     // Attach the standard input, makes possible user interaction
	AttachStderr bool     // Attach the standard error
	AttachStdout bool     // Attach the standard output
	Detach       bool     // Execute in detach mode
	DetachKeys   string   // Escape keys for detach
	Env          []string // Environment variables
	WorkingDir   string   // Working directory
	Cmd          []string // Execution commands and args
}

ExecOptions is a small subset of the Config struct that holds the configuration for the exec feature of docker.

type ExecStartOptions

type ExecStartOptions struct {
	// ExecStart will first check if it's detached
	Detach bool
	// Check if there's a tty
	Tty bool
	// Terminal size [height, width], unused if Tty == false
	ConsoleSize *[2]uint `json:",omitempty"`
}

ExecStartOptions is a temp struct used by execStart Config fields is part of ExecConfig in runconfig package

type FilesystemChange

type FilesystemChange struct {

	// kind
	// Required: true
	Kind ChangeType `json:"Kind"`

	// Path to file or directory that has changed.
	//
	// Required: true
	Path string `json:"Path"`
}

FilesystemChange Change in the container's filesystem.

swagger:model FilesystemChange

type HealthConfig

type HealthConfig = dockerspec.HealthcheckConfig

HealthConfig holds configuration settings for the HEALTHCHECK feature.

type HostConfig

type HostConfig struct {
	// Applicable to all platforms
	Binds           []string          // List of volume bindings for this container
	ContainerIDFile string            // File (path) where the containerId is written
	LogConfig       LogConfig         // Configuration of the logs for this container
	NetworkMode     NetworkMode       // Network mode to use for the container
	PortBindings    nat.PortMap       // Port mapping between the exposed port (container) and the host
	RestartPolicy   RestartPolicy     // Restart policy to be used for the container
	AutoRemove      bool              // Automatically remove container when it exits
	VolumeDriver    string            // Name of the volume driver used to mount volumes
	VolumesFrom     []string          // List of volumes to take from other container
	ConsoleSize     [2]uint           // Initial console size (height,width)
	Annotations     map[string]string `json:",omitempty"` // Arbitrary non-identifying metadata attached to container and provided to the runtime

	// Applicable to UNIX platforms
	CapAdd          strslice.StrSlice // List of kernel capabilities to add to the container
	CapDrop         strslice.StrSlice // List of kernel capabilities to remove from the container
	CgroupnsMode    CgroupnsMode      // Cgroup namespace mode to use for the container
	DNS             []string          `json:"Dns"`        // List of DNS server to lookup
	DNSOptions      []string          `json:"DnsOptions"` // List of DNSOption to look for
	DNSSearch       []string          `json:"DnsSearch"`  // List of DNSSearch to look for
	ExtraHosts      []string          // List of extra hosts
	GroupAdd        []string          // List of additional groups that the container process will run as
	IpcMode         IpcMode           // IPC namespace to use for the container
	Cgroup          CgroupSpec        // Cgroup to use for the container
	Links           []string          // List of links (in the name:alias form)
	OomScoreAdj     int               // Container preference for OOM-killing
	PidMode         PidMode           // PID namespace to use for the container
	Privileged      bool              // Is the container in privileged mode
	PublishAllPorts bool              // Should docker publish all exposed port for the container
	ReadonlyRootfs  bool              // Is the container root filesystem in read-only
	SecurityOpt     []string          // List of string values to customize labels for MLS systems, such as SELinux.
	StorageOpt      map[string]string `json:",omitempty"` // Storage driver options per container.
	Tmpfs           map[string]string `json:",omitempty"` // List of tmpfs (mounts) used for the container
	UTSMode         UTSMode           // UTS namespace to use for the container
	UsernsMode      UsernsMode        // The user namespace to use for the container
	ShmSize         int64             // Total shm memory usage
	Sysctls         map[string]string `json:",omitempty"` // List of Namespaced sysctls used for the container
	Runtime         string            `json:",omitempty"` // Runtime to use with this container

	// Applicable to Windows
	Isolation Isolation // Isolation technology of the container (e.g. default, hyperv)

	// Contains container's resources (cgroups, ulimits)
	Resources

	// Mounts specs used by the container
	Mounts []mount.Mount `json:",omitempty"`

	// MaskedPaths is the list of paths to be masked inside the container (this overrides the default set of paths)
	MaskedPaths []string

	// ReadonlyPaths is the list of paths to be set as read-only inside the container (this overrides the default set of paths)
	ReadonlyPaths []string

	// Run a custom init inside the container, if null, use the daemon's configured settings
	Init *bool `json:",omitempty"`
}

HostConfig the non-portable Config structure of a container. Here, "non-portable" means "dependent of the host we are running on". Portable information *should* appear in Config.

type IpcMode

type IpcMode string

IpcMode represents the container ipc stack.

const (
	IPCModeNone      IpcMode = "none"
	IPCModeHost      IpcMode = "host"
	IPCModeContainer IpcMode = "container"
	IPCModePrivate   IpcMode = "private"
	IPCModeShareable IpcMode = "shareable"
)

IpcMode constants

func (IpcMode) Container

func (n IpcMode) Container() (idOrName string)

Container returns the name of the container ipc stack is going to be used.

func (IpcMode) IsContainer

func (n IpcMode) IsContainer() bool

IsContainer indicates whether the container uses another container's ipc namespace.

func (IpcMode) IsEmpty

func (n IpcMode) IsEmpty() bool

IsEmpty indicates whether container IpcMode is empty

func (IpcMode) IsHost

func (n IpcMode) IsHost() bool

IsHost indicates whether the container shares the host's ipc namespace.

func (IpcMode) IsNone

func (n IpcMode) IsNone() bool

IsNone indicates whether container IpcMode is set to "none".

func (IpcMode) IsPrivate

func (n IpcMode) IsPrivate() bool

IsPrivate indicates whether the container uses its own private ipc namespace which can not be shared.

func (IpcMode) IsShareable

func (n IpcMode) IsShareable() bool

IsShareable indicates whether the container's ipc namespace can be shared with another container.

func (IpcMode) Valid

func (n IpcMode) Valid() bool

Valid indicates whether the ipc mode is valid.

type Isolation

type Isolation string

Isolation represents the isolation technology of a container. The supported values are platform specific

const (
	IsolationEmpty   Isolation = ""        // IsolationEmpty is unspecified (same behavior as default)
	IsolationDefault Isolation = "default" // IsolationDefault is the default isolation mode on current daemon
	IsolationProcess Isolation = "process" // IsolationProcess is process isolation mode
	IsolationHyperV  Isolation = "hyperv"  // IsolationHyperV is HyperV isolation mode
)

Isolation modes for containers

func (Isolation) IsDefault

func (i Isolation) IsDefault() bool

IsDefault indicates the default isolation technology of a container. On Linux this is the native driver. On Windows, this is a Windows Server Container.

func (Isolation) IsHyperV

func (i Isolation) IsHyperV() bool

IsHyperV indicates the use of a Hyper-V partition for isolation

func (Isolation) IsProcess

func (i Isolation) IsProcess() bool

IsProcess indicates the use of process isolation

func (Isolation) IsValid

func (i Isolation) IsValid() bool

IsValid indicates if an isolation technology is valid

type ListOptions

type ListOptions struct {
	Size    bool
	All     bool
	Latest  bool
	Since   string
	Before  string
	Limit   int
	Filters filters.Args
}

ListOptions holds parameters to list containers with.

type LogConfig

type LogConfig struct {
	Type   string
	Config map[string]string
}

LogConfig represents the logging configuration of the container.

type LogMode

type LogMode string

LogMode is a type to define the available modes for logging These modes affect how logs are handled when log messages start piling up.

const (
	LogModeUnset    LogMode = ""
	LogModeBlocking LogMode = "blocking"
	LogModeNonBlock LogMode = "non-blocking"
)

Available logging modes

type LogsOptions

type LogsOptions struct {
	ShowStdout bool
	ShowStderr bool
	Since      string
	Until      string
	Timestamps bool
	Follow     bool
	Tail       string
	Details    bool
}

LogsOptions holds parameters to filter logs with.

type MemoryStats

type MemoryStats struct {

	// current res_counter usage for memory
	Usage uint64 `json:"usage,omitempty"`
	// maximum usage ever recorded.
	MaxUsage uint64 `json:"max_usage,omitempty"`
	// TODO(vishh): Export these as stronger types.
	// all the stats exported via memory.stat.
	Stats map[string]uint64 `json:"stats,omitempty"`
	// number of times memory usage hits limits.
	Failcnt uint64 `json:"failcnt,omitempty"`
	Limit   uint64 `json:"limit,omitempty"`

	// committed bytes
	Commit uint64 `json:"commitbytes,omitempty"`
	// peak committed bytes
	CommitPeak uint64 `json:"commitpeakbytes,omitempty"`
	// private working set
	PrivateWorkingSet uint64 `json:"privateworkingset,omitempty"`
}

MemoryStats aggregates all memory stats since container inception on Linux. Windows returns stats for commit and private working set only.

type NetworkMode

type NetworkMode string

NetworkMode represents the container network stack.

func (NetworkMode) ConnectedContainer

func (n NetworkMode) ConnectedContainer() (idOrName string)

ConnectedContainer is the id of the container which network this container is connected to.

func (NetworkMode) IsBridge

func (n NetworkMode) IsBridge() bool

IsBridge indicates whether container uses the bridge network stack

func (NetworkMode) IsContainer

func (n NetworkMode) IsContainer() bool

IsContainer indicates whether container uses a container network stack.

func (NetworkMode) IsDefault

func (n NetworkMode) IsDefault() bool

IsDefault indicates whether container uses the default network stack.

func (NetworkMode) IsHost

func (n NetworkMode) IsHost() bool

IsHost indicates whether container uses the host network stack.

func (NetworkMode) IsNone

func (n NetworkMode) IsNone() bool

IsNone indicates whether container isn't using a network stack.

func (NetworkMode) IsPrivate

func (n NetworkMode) IsPrivate() bool

IsPrivate indicates whether container uses its private network stack.

func (NetworkMode) IsUserDefined

func (n NetworkMode) IsUserDefined() bool

IsUserDefined indicates user-created network

func (NetworkMode) NetworkName

func (n NetworkMode) NetworkName() string

NetworkName returns the name of the network stack.

func (NetworkMode) UserDefined

func (n NetworkMode) UserDefined() string

UserDefined indicates user-created network

type NetworkStats

type NetworkStats struct {
	// Bytes received. Windows and Linux.
	RxBytes uint64 `json:"rx_bytes"`
	// Packets received. Windows and Linux.
	RxPackets uint64 `json:"rx_packets"`
	// Received errors. Not used on Windows. Note that we don't `omitempty` this
	// field as it is expected in the >=v1.21 API stats structure.
	RxErrors uint64 `json:"rx_errors"`
	// Incoming packets dropped. Windows and Linux.
	RxDropped uint64 `json:"rx_dropped"`
	// Bytes sent. Windows and Linux.
	TxBytes uint64 `json:"tx_bytes"`
	// Packets sent. Windows and Linux.
	TxPackets uint64 `json:"tx_packets"`
	// Sent errors. Not used on Windows. Note that we don't `omitempty` this
	// field as it is expected in the >=v1.21 API stats structure.
	TxErrors uint64 `json:"tx_errors"`
	// Outgoing packets dropped. Windows and Linux.
	TxDropped uint64 `json:"tx_dropped"`
	// Endpoint ID. Not used on Linux.
	EndpointID string `json:"endpoint_id,omitempty"`
	// Instance ID. Not used on Linux.
	InstanceID string `json:"instance_id,omitempty"`
}

NetworkStats aggregates the network stats of one container

type PathStat

type PathStat struct {
	Name       string      `json:"name"`
	Size       int64       `json:"size"`
	Mode       os.FileMode `json:"mode"`
	Mtime      time.Time   `json:"mtime"`
	LinkTarget string      `json:"linkTarget"`
}

PathStat is used to encode the header from GET "/containers/{name:.*}/archive" "Name" is the file or directory name.

type PidMode

type PidMode string

PidMode represents the pid namespace of the container.

func (PidMode) Container

func (n PidMode) Container() (idOrName string)

Container returns the name of the container whose pid namespace is going to be used.

func (PidMode) IsContainer

func (n PidMode) IsContainer() bool

IsContainer indicates whether the container uses a container's pid namespace.

func (PidMode) IsHost

func (n PidMode) IsHost() bool

IsHost indicates whether the container uses the host's pid namespace.

func (PidMode) IsPrivate

func (n PidMode) IsPrivate() bool

IsPrivate indicates whether the container uses its own new pid namespace.

func (PidMode) Valid

func (n PidMode) Valid() bool

Valid indicates whether the pid namespace is valid.

type PidsStats

type PidsStats struct {
	// Current is the number of pids in the cgroup
	Current uint64 `json:"current,omitempty"`
	// Limit is the hard limit on the number of pids in the cgroup.
	// A "Limit" of 0 means that there is no limit.
	Limit uint64 `json:"limit,omitempty"`
}

PidsStats contains the stats of a container's pids

type PruneReport

type PruneReport struct {
	ContainersDeleted []string
	SpaceReclaimed    uint64
}

PruneReport contains the response for Engine API: POST "/containers/prune"

type RemoveOptions

type RemoveOptions struct {
	RemoveVolumes bool
	RemoveLinks   bool
	Force         bool
}

RemoveOptions holds parameters to remove containers.

type ResizeOptions

type ResizeOptions struct {
	Height uint
	Width  uint
}

ResizeOptions holds parameters to resize a TTY. It can be used to resize container TTYs and exec process TTYs too.

type Resources

type Resources struct {
	// Applicable to all platforms
	CPUShares int64 `json:"CpuShares"` // CPU shares (relative weight vs. other containers)
	Memory    int64 // Memory limit (in bytes)
	NanoCPUs  int64 `json:"NanoCpus"` // CPU quota in units of 10<sup>-9</sup> CPUs.

	// Applicable to UNIX platforms
	CgroupParent         string // Parent cgroup.
	BlkioWeight          uint16 // Block IO weight (relative weight vs. other containers)
	BlkioWeightDevice    []*blkiodev.WeightDevice
	BlkioDeviceReadBps   []*blkiodev.ThrottleDevice
	BlkioDeviceWriteBps  []*blkiodev.ThrottleDevice
	BlkioDeviceReadIOps  []*blkiodev.ThrottleDevice
	BlkioDeviceWriteIOps []*blkiodev.ThrottleDevice
	CPUPeriod            int64           `json:"CpuPeriod"`          // CPU CFS (Completely Fair Scheduler) period
	CPUQuota             int64           `json:"CpuQuota"`           // CPU CFS (Completely Fair Scheduler) quota
	CPURealtimePeriod    int64           `json:"CpuRealtimePeriod"`  // CPU real-time period
	CPURealtimeRuntime   int64           `json:"CpuRealtimeRuntime"` // CPU real-time runtime
	CpusetCpus           string          // CpusetCpus 0-2, 0,1
	CpusetMems           string          // CpusetMems 0-2, 0,1
	Devices              []DeviceMapping // List of devices to map inside the container
	DeviceCgroupRules    []string        // List of rule to be added to the device cgroup
	DeviceRequests       []DeviceRequest // List of device requests for device drivers

	// KernelMemory specifies the kernel memory limit (in bytes) for the container.
	// Deprecated: kernel 5.4 deprecated kmem.limit_in_bytes.
	KernelMemory      int64     `json:",omitempty"`
	KernelMemoryTCP   int64     `json:",omitempty"` // Hard limit for kernel TCP buffer memory (in bytes)
	MemoryReservation int64     // Memory soft limit (in bytes)
	MemorySwap        int64     // Total memory usage (memory + swap); set `-1` to enable unlimited swap
	MemorySwappiness  *int64    // Tuning container memory swappiness behaviour
	OomKillDisable    *bool     // Whether to disable OOM Killer or not
	PidsLimit         *int64    // Setting PIDs limit for a container; Set `0` or `-1` for unlimited, or `null` to not change.
	Ulimits           []*Ulimit // List of ulimits to be set in the container

	// Applicable to Windows
	CPUCount           int64  `json:"CpuCount"`   // CPU count
	CPUPercent         int64  `json:"CpuPercent"` // CPU percent
	IOMaximumIOps      uint64 // Maximum IOps for the container system drive
	IOMaximumBandwidth uint64 // Maximum IO in bytes per second for the container system drive
}

Resources contains container's resources (cgroups config, ulimits...)

type RestartPolicy

type RestartPolicy struct {
	Name              RestartPolicyMode
	MaximumRetryCount int
}

RestartPolicy represents the restart policies of the container.

func (*RestartPolicy) IsAlways

func (rp *RestartPolicy) IsAlways() bool

IsAlways indicates whether the container has the "always" restart policy. This means the container will automatically restart regardless of the exit status.

func (*RestartPolicy) IsNone

func (rp *RestartPolicy) IsNone() bool

IsNone indicates whether the container has the "no" restart policy. This means the container will not automatically restart when exiting.

func (*RestartPolicy) IsOnFailure

func (rp *RestartPolicy) IsOnFailure() bool

IsOnFailure indicates whether the container has the "on-failure" restart policy. This means the container will automatically restart of exiting with a non-zero exit status.

func (*RestartPolicy) IsSame

func (rp *RestartPolicy) IsSame(tp *RestartPolicy) bool

IsSame compares two RestartPolicy to see if they are the same

func (*RestartPolicy) IsUnlessStopped

func (rp *RestartPolicy) IsUnlessStopped() bool

IsUnlessStopped indicates whether the container has the "unless-stopped" restart policy. This means the container will automatically restart unless user has put it to stopped state.

type RestartPolicyMode

type RestartPolicyMode string
const (
	RestartPolicyDisabled      RestartPolicyMode = "no"
	RestartPolicyAlways        RestartPolicyMode = "always"
	RestartPolicyOnFailure     RestartPolicyMode = "on-failure"
	RestartPolicyUnlessStopped RestartPolicyMode = "unless-stopped"
)

type StartOptions

type StartOptions struct {
	CheckpointID  string
	CheckpointDir string
}

StartOptions holds parameters to start containers.

type Stats

type Stats struct {
	// Common stats
	Read    time.Time `json:"read"`
	PreRead time.Time `json:"preread"`

	// Linux specific stats, not populated on Windows.
	PidsStats  PidsStats  `json:"pids_stats,omitempty"`
	BlkioStats BlkioStats `json:"blkio_stats,omitempty"`

	// Windows specific stats, not populated on Linux.
	NumProcs     uint32       `json:"num_procs"`
	StorageStats StorageStats `json:"storage_stats,omitempty"`

	// Shared stats
	CPUStats    CPUStats    `json:"cpu_stats,omitempty"`
	PreCPUStats CPUStats    `json:"precpu_stats,omitempty"` // "Pre"="Previous"
	MemoryStats MemoryStats `json:"memory_stats,omitempty"`
}

Stats is Ultimate struct aggregating all types of stats of one container

type StatsResponse

type StatsResponse struct {
	Stats

	Name string `json:"name,omitempty"`
	ID   string `json:"id,omitempty"`

	// Networks request version >=1.21
	Networks map[string]NetworkStats `json:"networks,omitempty"`
}

StatsResponse is newly used Networks.

TODO(thaJeztah): unify with Stats. This wrapper was to account for pre-api v1.21 changes, see https://github.com/moby/moby/commit/d3379946ec96fb6163cb8c4517d7d5a067045801

type StatsResponseReader

type StatsResponseReader struct {
	Body   io.ReadCloser `json:"body"`
	OSType string        `json:"ostype"`
}

StatsResponseReader wraps an io.ReadCloser to read (a stream of) stats for a container, as produced by the GET "/stats" endpoint.

The OSType field is set to the server's platform to allow platform-specific handling of the response.

TODO(thaJeztah): remove this wrapper, and make OSType part of StatsResponse.

type StopOptions

type StopOptions struct {
	// Signal (optional) is the signal to send to the container to (gracefully)
	// stop it before forcibly terminating the container with SIGKILL after the
	// timeout expires. If not value is set, the default (SIGTERM) is used.
	Signal string `json:",omitempty"`

	// Timeout (optional) is the timeout (in seconds) to wait for the container
	// to stop gracefully before forcibly terminating it with SIGKILL.
	//
	// - Use nil to use the default timeout (10 seconds).
	// - Use '-1' to wait indefinitely.
	// - Use '0' to not wait for the container to exit gracefully, and
	//   immediately proceeds to forcibly terminating the container.
	// - Other positive values are used as timeout (in seconds).
	Timeout *int `json:",omitempty"`
}

StopOptions holds the options to stop or restart a container.

type StorageStats

type StorageStats struct {
	ReadCountNormalized  uint64 `json:"read_count_normalized,omitempty"`
	ReadSizeBytes        uint64 `json:"read_size_bytes,omitempty"`
	WriteCountNormalized uint64 `json:"write_count_normalized,omitempty"`
	WriteSizeBytes       uint64 `json:"write_size_bytes,omitempty"`
}

StorageStats is the disk I/O stats for read/write on Windows.

type ThrottlingData

type ThrottlingData struct {
	// Number of periods with throttling active
	Periods uint64 `json:"periods"`
	// Number of periods when the container hits its throttling limit.
	ThrottledPeriods uint64 `json:"throttled_periods"`
	// Aggregate time the container was throttled for in nanoseconds.
	ThrottledTime uint64 `json:"throttled_time"`
}

ThrottlingData stores CPU throttling stats of one running container. Not used on Windows.

type UTSMode

type UTSMode string

UTSMode represents the UTS namespace of the container.

func (UTSMode) IsHost

func (n UTSMode) IsHost() bool

IsHost indicates whether the container uses the host's UTS namespace.

func (UTSMode) IsPrivate

func (n UTSMode) IsPrivate() bool

IsPrivate indicates whether the container uses its private UTS namespace.

func (UTSMode) Valid

func (n UTSMode) Valid() bool

Valid indicates whether the UTS namespace is valid.

type Ulimit

type Ulimit = units.Ulimit

Ulimit is an alias for units.Ulimit, which may be moving to a different location or become a local type. This alias is to help transitioning.

Users are recommended to use this alias instead of using units.Ulimit directly.

type UpdateConfig

type UpdateConfig struct {
	// Contains container's resources (cgroups, ulimits)
	Resources
	RestartPolicy RestartPolicy
}

UpdateConfig holds the mutable attributes of a Container. Those attributes can be updated at runtime.

type UsernsMode

type UsernsMode string

UsernsMode represents userns mode in the container.

func (UsernsMode) IsHost

func (n UsernsMode) IsHost() bool

IsHost indicates whether the container uses the host's userns.

func (UsernsMode) IsPrivate

func (n UsernsMode) IsPrivate() bool

IsPrivate indicates whether the container uses the a private userns.

func (UsernsMode) Valid

func (n UsernsMode) Valid() bool

Valid indicates whether the userns is valid.

type WaitCondition

type WaitCondition string

WaitCondition is a type used to specify a container state for which to wait.

const (
	WaitConditionNotRunning WaitCondition = "not-running"
	WaitConditionNextExit   WaitCondition = "next-exit"
	WaitConditionRemoved    WaitCondition = "removed"
)

Possible WaitCondition Values.

WaitConditionNotRunning (default) is used to wait for any of the non-running states: "created", "exited", "dead", "removing", or "removed".

WaitConditionNextExit is used to wait for the next time the state changes to a non-running state. If the state is currently "created" or "exited", this would cause Wait() to block until either the container runs and exits or is removed.

WaitConditionRemoved is used to wait for the container to be removed.

type WaitExitError

type WaitExitError struct {

	// Details of an error
	Message string `json:"Message,omitempty"`
}

WaitExitError container waiting error, if any swagger:model WaitExitError

type WaitResponse

type WaitResponse struct {

	// error
	Error *WaitExitError `json:"Error,omitempty"`

	// Exit code of the container
	// Required: true
	StatusCode int64 `json:"StatusCode"`
}

WaitResponse ContainerWaitResponse

OK response to ContainerWait operation swagger:model WaitResponse

Jump to

Keyboard shortcuts

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