Documentation ¶
Index ¶
- Constants
- func ValidateRestartPolicy(policy RestartPolicy) error
- type AttachOptions
- type BlkioStatEntry
- type BlkioStats
- type CPUStats
- type CPUUsage
- type CgroupSpec
- type CgroupnsMode
- type ChangeType
- type CommitOptions
- type Config
- type ContainerJSONBase
- type ContainerTopOKBody
- type ContainerUpdateOKBody
- type CopyToContainerOptions
- type CreateRequest
- type CreateResponse
- type DefaultNetworkSettings
- type DeviceMapping
- type DeviceRequest
- type ExecAttachOptions
- type ExecInspect
- type ExecOptions
- type ExecStartOptions
- type FilesystemChange
- type Health
- type HealthConfig
- type HealthcheckResult
- type HostConfig
- type InspectResponse
- type IpcMode
- type Isolation
- type ListOptions
- type LogConfig
- type LogMode
- type LogsOptions
- type MemoryStats
- type MountPoint
- type NetworkMode
- func (n NetworkMode) ConnectedContainer() (idOrName string)
- func (n NetworkMode) IsBridge() bool
- func (n NetworkMode) IsContainer() bool
- func (n NetworkMode) IsDefault() bool
- func (n NetworkMode) IsHost() bool
- func (n NetworkMode) IsNone() bool
- func (n NetworkMode) IsPrivate() bool
- func (n NetworkMode) IsUserDefined() bool
- func (n NetworkMode) NetworkName() string
- func (n NetworkMode) UserDefined() string
- type NetworkSettings
- type NetworkSettingsBase
- type NetworkSettingsSummary
- type NetworkStats
- type PathStat
- type PidMode
- type PidsStats
- type Port
- type PruneReport
- type RemoveOptions
- type ResizeOptions
- type Resources
- type RestartPolicy
- type RestartPolicyMode
- type StartOptions
- type State
- type Stats
- type StatsResponse
- type StatsResponseReader
- type StopOptions
- type StorageStats
- type Summary
- type ThrottlingData
- type UTSMode
- type Ulimit
- type UpdateConfig
- type UsernsMode
- type WaitCondition
- type WaitExitError
- type WaitResponse
Constants ¶
const ( NoHealthcheck = "none" // Indicates there is no healthcheck Starting = "starting" // Starting indicates that the container is not yet ready Healthy = "healthy" // Healthy indicates that the container is running correctly Unhealthy = "unhealthy" // Unhealthy indicates that the container has a problem )
Health states
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 ContainerJSONBase ¶
type ContainerJSONBase struct { ID string `json:"Id"` Created string Path string Args []string State *State Image string ResolvConfPath string HostnamePath string HostsPath string LogPath string Name string RestartCount int Driver string Platform string MountLabel string ProcessLabel string AppArmorProfile string ExecIDs []string HostConfig *HostConfig GraphDriver storage.DriverData SizeRw *int64 `json:",omitempty"` SizeRootFs *int64 `json:",omitempty"` }
ContainerJSONBase contains response of Engine API GET "/containers/{name:.*}/json" for API version 1.18 and older.
TODO(thaJeztah): combine ContainerJSONBase and InspectResponse into a single struct. The split between ContainerJSONBase (ContainerJSONBase) and InspectResponse (InspectResponse) was done in commit 6deaa58ba5f051039643cedceee97c8695e2af74 (https://github.com/moby/moby/pull/13675). ContainerJSONBase contained all fields for API < 1.19, and InspectResponse held fields that were added in API 1.19 and up. Given that the minimum supported API version is now 1.24, we no longer use the separate type.
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 ¶
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 DefaultNetworkSettings ¶
type DefaultNetworkSettings struct { EndpointID string // EndpointID uniquely represents a service endpoint in a Sandbox Gateway string // Gateway holds the gateway address for the network GlobalIPv6Address string // GlobalIPv6Address holds network's global IPv6 address GlobalIPv6PrefixLen int // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address IPAddress string // IPAddress holds the IPv4 address for the network IPPrefixLen int // IPPrefixLen represents mask length of network's IPv4 address IPv6Gateway string // IPv6Gateway holds gateway address specific for IPv6 MacAddress string // MacAddress holds the MAC address for the network }
DefaultNetworkSettings holds network information during the 2 release deprecation period. It will be removed in Docker 1.11.
type DeviceMapping ¶
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 Health ¶
type Health struct { Status string // Status is one of [Starting], [Healthy] or [Unhealthy]. FailingStreak int // FailingStreak is the number of consecutive failures Log []*HealthcheckResult // Log contains the last few results (oldest first) }
Health stores information about the container's healthcheck results
type HealthConfig ¶
type HealthConfig = dockerspec.HealthcheckConfig
HealthConfig holds configuration settings for the HEALTHCHECK feature.
type HealthcheckResult ¶
type HealthcheckResult struct { Start time.Time // Start is the time this check started End time.Time // End is the time this check ended ExitCode int // ExitCode meanings: 0=healthy, 1=unhealthy, 2=reserved (considered unhealthy), else=error running probe Output string // Output from last check }
HealthcheckResult stores information about a single run of a healthcheck probe
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 InspectResponse ¶
type InspectResponse struct { *ContainerJSONBase Mounts []MountPoint Config *Config NetworkSettings *NetworkSettings // ImageManifestDescriptor is the descriptor of a platform-specific manifest of the image used to create the container. ImageManifestDescriptor *ocispec.Descriptor `json:",omitempty"` }
InspectResponse is the response for the GET "/containers/{name:.*}/json" endpoint.
type IpcMode ¶
type IpcMode string
IpcMode represents the container ipc stack.
const ( IPCModeNone IpcMode = "none" IPCModeHost IpcMode = "host" IPCModeContainer IpcMode = "container" IPCModePrivate IpcMode = "private" )
IpcMode constants
func (IpcMode) Container ¶
Container returns the name of the container ipc stack is going to be used.
func (IpcMode) IsContainer ¶
IsContainer indicates whether the container uses another container's ipc namespace.
func (IpcMode) IsPrivate ¶
IsPrivate indicates whether the container uses its own private ipc namespace which can not be shared.
func (IpcMode) IsShareable ¶
IsShareable indicates whether the container's ipc namespace can be shared with another container.
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 ¶
IsDefault indicates the default isolation technology of a container. On Linux this is the native driver. On Windows, this is a Windows Server Container.
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 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.
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 MountPoint ¶
type MountPoint struct { // Type is the type of mount, see `Type<foo>` definitions in // github.com/docker/docker/api/types/mount.Type Type mount.Type `json:",omitempty"` // Name is the name reference to the underlying data defined by `Source` // e.g., the volume name. Name string `json:",omitempty"` // Source is the source location of the mount. // // For volumes, this contains the storage location of the volume (within // `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains // the source (host) part of the bind-mount. For `tmpfs` mount points, this // field is empty. Source string // Destination is the path relative to the container root (`/`) where the // Source is mounted inside the container. Destination string // Driver is the volume driver used to create the volume (if it is a volume). Driver string `json:",omitempty"` // Mode is a comma separated list of options supplied by the user when // creating the bind/volume mount. // // The default is platform-specific (`"z"` on Linux, empty on Windows). Mode string // RW indicates whether the mount is mounted writable (read-write). RW bool // Propagation describes how mounts are propagated from the host into the // mount point, and vice-versa. Refer to the Linux kernel documentation // for details: // https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt // // This field is not used on Windows. Propagation mount.Propagation }
MountPoint represents a mount point configuration inside the container. This is used for reporting the mountpoints in use by a container.
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 NetworkSettings ¶
type NetworkSettings struct { NetworkSettingsBase DefaultNetworkSettings Networks map[string]*network.EndpointSettings }
NetworkSettings exposes the network settings in the api
type NetworkSettingsBase ¶
type NetworkSettingsBase struct { Bridge string // Bridge contains the name of the default bridge interface iff it was set through the daemon --bridge flag. SandboxID string // SandboxID uniquely represents a container's network stack SandboxKey string // SandboxKey identifies the sandbox Ports nat.PortMap // Ports is a collection of PortBinding indexed by Port // HairpinMode specifies if hairpin NAT should be enabled on the virtual interface // // Deprecated: This field is never set and will be removed in a future release. HairpinMode bool // LinkLocalIPv6Address is an IPv6 unicast address using the link-local prefix // // Deprecated: This field is never set and will be removed in a future release. LinkLocalIPv6Address string // LinkLocalIPv6PrefixLen is the prefix length of an IPv6 unicast address // // Deprecated: This field is never set and will be removed in a future release. LinkLocalIPv6PrefixLen int SecondaryIPAddresses []network.Address // Deprecated: This field is never set and will be removed in a future release. SecondaryIPv6Addresses []network.Address // Deprecated: This field is never set and will be removed in a future release. }
NetworkSettingsBase holds networking state for a container when inspecting it.
type NetworkSettingsSummary ¶
type NetworkSettingsSummary struct {
Networks map[string]*network.EndpointSettings
}
NetworkSettingsSummary provides a summary of container's networks in /containers/json
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 ¶
Container returns the name of the container whose pid namespace is going to be used.
func (PidMode) IsContainer ¶
IsContainer indicates whether the container uses a container's pid namespace.
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 Port ¶
type Port struct { // Host IP address that the container's port is mapped to IP string `json:"IP,omitempty"` // Port on the container // Required: true PrivatePort uint16 `json:"PrivatePort"` // Port exposed on the host PublicPort uint16 `json:"PublicPort,omitempty"` // type // Required: true Type string `json:"Type"` }
Port An open port on a container swagger:model Port
type PruneReport ¶
PruneReport contains the response for Engine API: POST "/containers/prune"
type RemoveOptions ¶
RemoveOptions holds parameters to remove containers.
type ResizeOptions ¶
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 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 ¶
StartOptions holds parameters to start containers.
type State ¶
type State struct { Status string // String representation of the container state. Can be one of "created", "running", "paused", "restarting", "removing", "exited", or "dead" Running bool Paused bool Restarting bool OOMKilled bool Dead bool Pid int ExitCode int Error string StartedAt string FinishedAt string Health *Health `json:",omitempty"` }
State stores container's running state it's part of ContainerJSONBase and returned by "inspect" command
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 Summary ¶
type Summary struct { ID string `json:"Id"` Names []string Image string ImageID string Command string Created int64 Ports []Port SizeRw int64 `json:",omitempty"` SizeRootFs int64 `json:",omitempty"` Labels map[string]string State string Status string HostConfig struct { NetworkMode string `json:",omitempty"` Annotations map[string]string `json:",omitempty"` } NetworkSettings *NetworkSettingsSummary Mounts []MountPoint }
Summary contains response of Engine API: GET "/containers/json"
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.
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
Source Files ¶
- change_type.go
- change_types.go
- config.go
- container.go
- container_top.go
- container_update.go
- create_request.go
- create_response.go
- errors.go
- exec.go
- filesystem_change.go
- health.go
- hostconfig.go
- hostconfig_unix.go
- network_settings.go
- options.go
- port.go
- stats.go
- wait_exit_error.go
- wait_response.go
- waitcondition.go