container

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2016 License: Apache-2.0 Imports: 6 Imported by: 1,316

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CgroupSpec added in v0.3.0

type CgroupSpec string

CgroupSpec represents the cgroup to use for the container.

func (CgroupSpec) Container added in v0.3.0

func (c CgroupSpec) Container() string

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

func (CgroupSpec) IsContainer added in v0.3.0

func (c CgroupSpec) IsContainer() bool

IsContainer indicates whether the container is using another container cgroup

func (CgroupSpec) Valid added in v0.3.0

func (c CgroupSpec) Valid() bool

Valid indicates whether the cgroup spec is valid.

type Config

type Config struct {
	Hostname        string                // Hostname
	Domainname      string                // Domainname
	User            string                // User that will run the command(s) inside the container
	AttachStdin     bool                  // Attach the standard input, makes possible user interaction
	AttachStdout    bool                  // Attach the standard output
	AttachStderr    bool                  // Attach the standard error
	ExposedPorts    map[nat.Port]struct{} `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 (Windows specific)
	Image           string                // Name of the image as it was passed by the operator (eg. 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
	MacAddress      string                `json:",omitempty"` // Mac Address of the container
	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 DeviceMapping

type DeviceMapping struct {
	PathOnHost        string
	PathInContainer   string
	CgroupPermissions string
}

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

type HealthConfig added in v0.4.0

type HealthConfig struct {
	// Test is the test to perform to check that the container is healthy.
	// An empty slice means to inherit the default.
	// The options are:
	// {} : inherit healthcheck
	// {"NONE"} : disable healthcheck
	// {"CMD", args...} : exec arguments directly
	// {"CMD-SHELL", command} : run command with system's default shell
	Test []string `json:",omitempty"`

	// Zero means to inherit. Durations are expressed as integer nanoseconds.
	Interval time.Duration `json:",omitempty"` // Interval is the time to wait between checks.
	Timeout  time.Duration `json:",omitempty"` // Timeout is the time to wait before considering the check to have hung.

	// Retries is the number of consecutive failures needed to consider a container as unhealthy.
	// Zero means inherit.
	Retries int `json:",omitempty"`
}

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

	// 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
	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
	ConsoleSize [2]int    // Initial console size
	Isolation   Isolation // Isolation technology of the container (eg default, hyperv)

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

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.

func (IpcMode) Container

func (n IpcMode) Container() 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 a container's ipc stack.

func (IpcMode) IsHost

func (n IpcMode) IsHost() bool

IsHost indicates whether the container uses the host's ipc stack.

func (IpcMode) IsPrivate

func (n IpcMode) IsPrivate() bool

IsPrivate indicates whether the container uses its private ipc stack.

func (IpcMode) Valid

func (n IpcMode) Valid() bool

Valid indicates whether the ipc stack is valid.

type Isolation added in v0.3.0

type Isolation string

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

func (Isolation) IsDefault added in v0.3.0

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) IsValid added in v0.3.0

func (i Isolation) IsValid() bool

IsValid indicates if an isolation technology is valid

type LogConfig

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

LogConfig represents the logging configuration of the container.

type NetworkMode

type NetworkMode string

NetworkMode represents the container network stack.

func (NetworkMode) ConnectedContainer

func (n NetworkMode) ConnectedContainer() 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 it's 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 PidMode

type PidMode string

PidMode represents the pid namespace of the container.

func (PidMode) Container added in v0.4.0

func (n PidMode) Container() string

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

func (PidMode) IsContainer added in v0.4.0

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 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)

	// 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
	CpusetCpus           string          // CpusetCpus 0-2, 0,1
	CpusetMems           string          // CpusetMems 0-2, 0,1
	Devices              []DeviceMapping // List of devices to map inside the container
	DiskQuota            int64           // Disk limit (in bytes)
	KernelMemory         int64           // Kernel memory limit (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
	Ulimits              []*units.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              string
	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 added in v0.3.0

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 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 UpdateConfig added in v0.1.2

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 added in v0.3.0

type UsernsMode string

UsernsMode represents userns mode in the container.

func (UsernsMode) IsHost added in v0.3.0

func (n UsernsMode) IsHost() bool

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

func (UsernsMode) IsPrivate added in v0.3.0

func (n UsernsMode) IsPrivate() bool

IsPrivate indicates whether the container uses the a private userns.

func (UsernsMode) Valid added in v0.3.0

func (n UsernsMode) Valid() bool

Valid indicates whether the userns is valid.

Jump to

Keyboard shortcuts

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