dockerclient

package
v0.0.0-...-1133dd9 Latest Latest
Warning

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

Go to latest
Published: May 9, 2024 License: Apache-2.0 Imports: 6 Imported by: 47

Documentation

Index

Constants

View Source
const (
	// ListImagesTimeout is the timeout for the ListImages API
	ListImagesTimeout = 10 * time.Minute
	// LoadImageTimeout is the timeout for the LoadImage API. It's set
	// to much lower value than pullImageTimeout as it involves loading
	// image from either a file or STDIN calls involved.
	// This value is set based on benchmarking the time of loading the pause container image,
	// since it's currently only used to load that image. If this is to be used to load any
	// other image in the future, additional benchmarking will be required.
	// Per benchmark, 2 min is roughly 4x of the worst case (29s) across 400 image loads on
	// al1/al2/al2gpu/al2arm with smallest instance type available (t2.nano/a1.medium) and
	// burst balance = 0.
	LoadImageTimeout = 2 * time.Minute
	// RemoveImageTimeout is the timeout for the RemoveImage API.
	RemoveImageTimeout = 3 * time.Minute
	// ListContainersTimeout is the timeout for the ListContainers API.
	ListContainersTimeout = 10 * time.Minute
	// InspectContainerTimeout is the timeout for the InspectContainer API.
	InspectContainerTimeout = 30 * time.Second
	// ContainerExecCreateTimeout is the timeout for the ContainerExecCreate API.
	ContainerExecCreateTimeout = 1 * time.Minute
	// ContainerExecStartTimeout is the timeout for the ContainerExecStart API.
	ContainerExecStartTimeout = 1 * time.Minute
	// ContainerExecInspectTimeout is the timeout for the ContainerExecInspect API.
	ContainerExecInspectTimeout = 1 * time.Minute
	// StopContainerTimeout is the timeout for the StopContainer API.
	StopContainerTimeout = 30 * time.Second
	// RemoveContainerTimeout is the timeout for the RemoveContainer API.
	RemoveContainerTimeout = 5 * time.Minute

	// CreateVolumeTimeout is the timeout for CreateVolume API.
	CreateVolumeTimeout = 5 * time.Minute
	// InspectVolumeTimeout is the timeout for InspectVolume API.
	InspectVolumeTimeout = 5 * time.Minute
	// RemoveVolumeTimeout is the timeout for RemoveVolume API.
	RemoveVolumeTimeout = 5 * time.Minute

	// ListPluginsTimeout is the timeout for ListPlugins API.
	ListPluginsTimeout = 1 * time.Minute

	// StatsInactivityTimeout controls the amount of time we hold open a
	// connection to the Docker daemon waiting for stats data.
	// We set this a few seconds below our stats publishling interval (20s)
	// so that we can disconnect and warn the user when metrics reporting
	// may be impacted. This is usually caused by a over-stressed docker daemon.
	StatsInactivityTimeout = 18 * time.Second

	// DockerPullBeginTimeout is the timeout from when a 'pull' is called to when
	// we expect to see output on the pull progress stream. This is to work
	// around a docker bug which sometimes results in pulls not progressing.
	DockerPullBeginTimeout = 5 * time.Minute

	// VersionTimeout is the timeout for the Version API
	VersionTimeout = 10 * time.Second

	// InfoTimeout is the timeout for the Info API
	InfoTimeout = 10 * time.Second
)

Timelimits for docker operations enforced above docker

Variables

View Source
var (
	// MinDockerAPIVersion is the min Docker API version supported by agent
	MinDockerAPIVersion   = Version_1_21
	MinDockerAPIVersionMu sync.Mutex
)

Functions

func SetMinDockerAPIVersion

func SetMinDockerAPIVersion(v DockerVersion)

SetMinDockerAPIVersion sets the minimum/default docker API version that the ECS agent will use.

Types

type DockerAPIVersion

type DockerAPIVersion string

func (DockerAPIVersion) Matches

func (lhs DockerAPIVersion) Matches(selector string) (bool, error)

Matches returns whether or not a version matches a given selector. The selector can be any of the following:

* x.y -- Matches a version exactly the same as the selector version * >=x.y -- Matches a version greater than or equal to the selector version * >x.y -- Matches a version greater than the selector version * <=x.y -- Matches a version less than or equal to the selector version * <x.y -- Matches a version less than the selector version * x.y,a.b -- Matches if the version matches either of the two selector versions

type DockerVersion

type DockerVersion string
const (
	Version_1_17 DockerVersion = "1.17"
	Version_1_18 DockerVersion = "1.18"
	Version_1_19 DockerVersion = "1.19"
	Version_1_20 DockerVersion = "1.20"
	Version_1_21 DockerVersion = "1.21"
	Version_1_22 DockerVersion = "1.22"
	Version_1_23 DockerVersion = "1.23"
	Version_1_24 DockerVersion = "1.24"
	Version_1_25 DockerVersion = "1.25"
	Version_1_26 DockerVersion = "1.26"
	Version_1_27 DockerVersion = "1.27"
	Version_1_28 DockerVersion = "1.28"
	Version_1_29 DockerVersion = "1.29"
	Version_1_30 DockerVersion = "1.30"
	Version_1_31 DockerVersion = "1.31"
	Version_1_32 DockerVersion = "1.32"
	Version_1_33 DockerVersion = "1.33"
	Version_1_34 DockerVersion = "1.34"
	Version_1_35 DockerVersion = "1.35"
	Version_1_36 DockerVersion = "1.36"
	Version_1_37 DockerVersion = "1.37"
	Version_1_38 DockerVersion = "1.38"
	Version_1_39 DockerVersion = "1.39"
	Version_1_40 DockerVersion = "1.40"
	Version_1_41 DockerVersion = "1.41"
	Version_1_42 DockerVersion = "1.42"
	Version_1_43 DockerVersion = "1.43"
	Version_1_44 DockerVersion = "1.44"
)

func GetKnownAPIVersions

func GetKnownAPIVersions() []DockerVersion

GetKnownAPIVersions returns all of the API versions that we know about. It doesn't care if the version is supported by Docker or ECS agent

func GetSupportedDockerAPIVersion

func GetSupportedDockerAPIVersion(version DockerVersion) DockerVersion

GetSupportedDockerAPIVersion takes in a DockerVersion and: 1. if the input version is supported, then the same version is returned. 2. if the input version is less than the minimum supported version, then the minimum supported version is returned. 3. if the input version is invalid, log a warning and return the minimum supported version.

func SupportedVersionsExtended

func SupportedVersionsExtended(supportedVersionsFn func() []DockerVersion) []DockerVersion

SupportedVersionsExtended takes in a function that returns supported docker API versions. It returns a list of "extended" API versions that may not be directly supported but their functionality is supported. For example, in Docker Engine 25.x API versions 1.17-1.23 were deprecated to be used directly, although their functionality is still supported.

func (DockerVersion) Compare

func (d DockerVersion) Compare(rhs DockerVersion) int

Compare returns 0 if versions are equal returns 1 if this version is greater than rhs returns -1 if this version if less than rhs

func (DockerVersion) String

func (d DockerVersion) String() string

type LoggingDriver

type LoggingDriver string
const (
	JSONFileDriver    LoggingDriver = "json-file"
	SyslogDriver      LoggingDriver = "syslog"
	JournaldDriver    LoggingDriver = "journald"
	GelfDriver        LoggingDriver = "gelf"
	FluentdDriver     LoggingDriver = "fluentd"
	AWSLogsDriver     LoggingDriver = "awslogs"
	SplunklogsDriver  LoggingDriver = "splunk"
	LogentriesDriver  LoggingDriver = "logentries"
	SumoLogicDriver   LoggingDriver = "sumologic"
	NoneDriver        LoggingDriver = "none"
	AWSFirelensDriver LoggingDriver = "awsfirelens"
)

Directories

Path Synopsis
mocks
Package mock_dockerapi is a generated GoMock package.
Package mock_dockerapi is a generated GoMock package.
Package dockerauth handles storing auth configuration information for Docker registries.
Package dockerauth handles storing auth configuration information for Docker registries.
Package sdkclient contains an interface for moby matching the subset used by the agent
Package sdkclient contains an interface for moby matching the subset used by the agent
mocks
Package mock_sdkclient is a generated GoMock package.
Package mock_sdkclient is a generated GoMock package.
mocks
Package mock_sdkclientfactory is a generated GoMock package.
Package mock_sdkclientfactory is a generated GoMock package.

Jump to

Keyboard shortcuts

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