client

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2026 License: MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsErrNotFound

func IsErrNotFound(err error) bool

IsErrNotFound reports whether err is a Docker Engine "not found" error (container, image, network, volume, and similar). It unwraps wrapped errors.

Types

type Attach

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

Attach is options for ContainerAttach.

type CheckpointCreate

type CheckpointCreate struct {
	CheckpointID  string
	CheckpointDir string
	Exit          bool
}

CheckpointCreate is options for ContainerCheckpointCreate.

type CheckpointDelete

type CheckpointDelete struct {
	CheckpointID  string
	CheckpointDir string
}

CheckpointDelete is options for ContainerCheckpointDelete.

type CheckpointList

type CheckpointList struct {
	CheckpointDir string
}

CheckpointList is options for ContainerCheckpointList.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a wrapper around the docker client.

func NewClient

func NewClient(setters ...SetClientOption) (*Client, error)

func (*Client) ContainerAttach

func (c *Client) ContainerAttach(ctx context.Context, id string, opt *Attach) (*response.ContainerHijackedResponse, error)

ContainerAttach attaches a connection to a container in the server. It returns a types.HijackedConnection with the hijacked connection and the a reader to get output. It's up to the called to close the hijacked connection by calling types.HijackedResponse.Close.

The stream format on the response will be in one of two formats:

If the container is using a TTY, there is only a single stream (stdout), and data is copied directly from the container output stream, no extra multiplexing or headers.

If the container is *not* using a TTY, streams for stdout and stderr are multiplexed. The format of the multiplexed stream is as follows:

[8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}[]byte{OUTPUT}

STREAM_TYPE can be 1 for stdout and 2 for stderr

SIZE1, SIZE2, SIZE3, and SIZE4 are four bytes of uint32 encoded as big endian. This is the size of OUTPUT.

You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this stream.

func (*Client) ContainerCheckpointCreate

func (c *Client) ContainerCheckpointCreate(ctx context.Context, id string, opt *CheckpointCreate) error

ContainerCheckpointCreate creates a checkpoint of a running container.

func (*Client) ContainerCheckpointDelete

func (c *Client) ContainerCheckpointDelete(ctx context.Context, id string, opt *CheckpointDelete) error

CheckpointDelete deletes the checkpoint with the given name from the given container

func (*Client) ContainerCheckpointList

func (c *Client) ContainerCheckpointList(ctx context.Context, id string, opt *CheckpointList) ([]response.ContainerCheckpointSummary, error)

CheckpointList returns the checkpoints of the given container in the docker host

func (*Client) ContainerCommit

func (c *Client) ContainerCommit(ctx context.Context, id string, opt *Commit) (*response.ContainerCommitResponse, error)

ContainerCommit applies changes to a container and creates a new tagged image.

func (*Client) ContainerCopyFromContainer

func (c *Client) ContainerCopyFromContainer(ctx context.Context, id string, srcPath string) (io.ReadCloser, *response.ContainerPathStat, error)

CopyFromContainer gets the content from the container and returns it as a Reader for a TAR archive to manipulate it in the host. It's up to the caller to close the reader.

func (*Client) ContainerCopyToContainer

func (c *Client) ContainerCopyToContainer(ctx context.Context, id string, dstPath string, opt *CopyTo) error

CopyToContainer copies content into the container filesystem. Note that `content` must be a Reader for a TAR archive

func (*Client) ContainerCreate

func (c *Client) ContainerCreate(ctx context.Context, created *containerkit.Container) (*response.ContainerCreate, error)

ContainerCreate creates a new container based on the given configuration. It can be associated with a name, but it's not mandatory.

func (*Client) ContainerDiff

func (c *Client) ContainerDiff(ctx context.Context, id string) ([]response.ContainerFilesystemChange, error)

ContainerDiff returns the changes on a container's filesystem.

func (*Client) ContainerExecAttach

func (c *Client) ContainerExecAttach(ctx context.Context, execID string, opt *ExecAttach) (*response.ContainerHijackedResponse, error)

ContainerExecAttach attaches a connection to an exec process in the server. It returns a types.HijackedConnection with the hijacked connection and the a reader to get output. It's up to the called to close the hijacked connection by calling types.HijackedResponse.Close.

func (*Client) ContainerExecAttachTerminal

func (c *Client) ContainerExecAttachTerminal(ctx context.Context, execID string, opt *ExecAttach) (*terminal.Session, error)

ContainerExecAttachTerminal attaches to a container exec command and returns a terminal session that can be used to interact with the command. The session handles terminal setup, raw mode, and cleanup automatically.

func (*Client) ContainerExecCreate

func (c *Client) ContainerExecCreate(ctx context.Context, containerID string, opt *Exec) (*response.ContainerExecCreate, error)

ContainerExecCreate creates a new exec configuration to run an exec process.

func (*Client) ContainerExecInspect

func (c *Client) ContainerExecInspect(ctx context.Context, id string) (*response.ContainerExecInspect, error)

ContainerExecInspect returns information about a specific exec process on the docker host.

func (*Client) ContainerExecResize

func (c *Client) ContainerExecResize(ctx context.Context, execID string, opt *Resize) error

ContainerExecResize changes the size of the tty for an exec process running inside a container.

func (*Client) ContainerExecStart

func (c *Client) ContainerExecStart(ctx context.Context, execID string, opt *ExecStart) error

ContainerExecStart starts an exec process already created in the docker host.

func (*Client) ContainerExport

func (c *Client) ContainerExport(ctx context.Context, id string) (io.ReadCloser, error)

ContainerExport retrieves the raw contents of a container and returns them as an io.ReadCloser. It's up to the caller to close the stream.

func (*Client) ContainerInspect

func (c *Client) ContainerInspect(ctx context.Context, id string) (*response.ContainerInspect, error)

ContainerInspect returns the container information.

func (*Client) ContainerKill

func (c *Client) ContainerKill(ctx context.Context, id string, signal string) error

ContainerKill terminates the container process but does not remove the container from the docker host.

func (*Client) ContainerList

func (c *Client) ContainerList(ctx context.Context, opt *List) ([]response.ContainerSummary, error)

ContainerList returns the list of containers in the docker host.

func (*Client) ContainerLogs

func (c *Client) ContainerLogs(ctx context.Context, id string, opt *Logs) (io.ReadCloser, error)

ContainerLogs returns the logs generated by a container in an io.ReadCloser. It's up to the caller to close the stream.

The stream format on the response will be in one of two formats:

If the container is using a TTY, there is only a single stream (stdout), and data is copied directly from the container output stream, no extra multiplexing or headers.

If the container is *not* using a TTY, streams for stdout and stderr are multiplexed. The format of the multiplexed stream is as follows:

[8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}[]byte{OUTPUT}

STREAM_TYPE can be 1 for stdout and 2 for stderr

SIZE1, SIZE2, SIZE3, and SIZE4 are four bytes of uint32 encoded as big endian. This is the size of OUTPUT.

You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this stream.

func (*Client) ContainerPause

func (c *Client) ContainerPause(ctx context.Context, id string) error

ContainerPause pauses the main process of a given container without terminating it

func (*Client) ContainerPrune

func (c *Client) ContainerPrune(ctx context.Context, opt *Prune) (*response.ContainerPruneReport, error)

ContainersPrune requests the daemon to delete unused data

func (*Client) ContainerRemove

func (c *Client) ContainerRemove(ctx context.Context, id string, opt *Remove) error

ContainerRemove kills and removes a container from the docker host.

func (*Client) ContainerRename

func (c *Client) ContainerRename(ctx context.Context, id string, name string) error

ContainerRename changes the name or nickname of a container.

func (*Client) ContainerResize

func (c *Client) ContainerResize(ctx context.Context, id string, opt *Resize) error

ContainerResize changes the size of the tty for a container.

func (*Client) ContainerRestart

func (c *Client) ContainerRestart(ctx context.Context, id string, opt *Stop) error

ContainerRestart stops and starts a container again. It makes the daemon wait for the container to be up again for a specific amount of time, given the timeout.

func (*Client) ContainerStart

func (c *Client) ContainerStart(ctx context.Context, id string, opt *Start) error

ContainerStart sends a request to the docker daemon to start a container.

func (*Client) ContainerStats

func (c *Client) ContainerStats(ctx context.Context, id string, stream bool) (*response.ContainerStatsReader, error)

ContainerStats returns near realtime stats for a given container. It's up to the caller to close the io.ReadCloser returned.

func (*Client) ContainerStatsOneShot

func (c *Client) ContainerStatsOneShot(ctx context.Context, id string) (*response.ContainerStatsOneShot, error)

ContainerStatsOneShot gets a single stat entry from a container. It differs from `ContainerStats` in that the API should not wait to prime the stats

func (*Client) ContainerStop

func (c *Client) ContainerStop(ctx context.Context, id string, opt *Stop) error

ContainerStop stops a container. In case the container fails to stop gracefully within a time frame specified by the timeout argument, it is forcefully terminated (killed).

func (*Client) ContainerTop

func (c *Client) ContainerTop(ctx context.Context, id string, args ...string) (*response.ContainerTopResponse, error)

ContainerTop shows process information from within a container.

func (*Client) ContainerUnpause

func (c *Client) ContainerUnpause(ctx context.Context, id string) error

ContainerUnpause resumes the process execution within a container

func (*Client) ContainerUpdate

func (c *Client) ContainerUpdate(ctx context.Context, id string, opt *Update) (*response.ContainerUpdateResponse, error)

ContainerUpdate updates resources of a container.

func (*Client) ContainerWait

func (c *Client) ContainerWait(ctx context.Context, id string, condition WaitCondition) (<-chan response.ContainerWait, <-chan error)

ContainerWait waits until the specified container is in a certain state indicated by the given condition, either "not-running" (default), "next-exit", or "removed". If this client's API version is before 1.30, condition is ignored and ContainerWait will return immediately with the two channels, as the server will wait as if the condition were "not-running".

If this client's API version is at least 1.30, ContainerWait blocks until the request has been acknowledged by the server (with a response header), then returns two channels on which the caller can wait for the exit status of the container or an error if there was a problem either beginning the wait request or in getting the response. This allows the caller to synchronize ContainerWait with other calls, such as specifying a "next-exit" condition before issuing a ContainerStart request.

func (*Client) ContainerWaitSync

func (c *Client) ContainerWaitSync(ctx context.Context, id string, condition WaitCondition) error

ContainerWaitSync blocks until the container reaches the desired state, an error occurs, or the context is cancelled.

Returns nil if the container completes successfully or if the context is cancelled, and returns a non-nil error only if the container fails or Docker reports an error.

func (*Client) ImageBuild

func (c *Client) ImageBuild(ctx context.Context, context io.Reader, opt *ImageBuild) (*response.ImageBuild, error)

ImageBuild sends a request to the daemon to build images. The Body in the response implements an io.ReadCloser and it's up to the caller to close it.

func (*Client) ImageCreate

func (c *Client) ImageCreate(ctx context.Context, ref string, opt *ImageCreate) (io.ReadCloser, error)

ImageCreate creates a new image based on the parent options. It returns the JSON content in the response body.

func (*Client) ImageHistory

func (c *Client) ImageHistory(ctx context.Context, ref string) ([]response.ImageHistoryItem, error)

ImageHistory returns the changes in an image in history format.

func (*Client) ImageImport

func (c *Client) ImageImport(ctx context.Context, ref string, opt *ImageImport) (io.ReadCloser, error)

ImageImport creates a new image based on the source options. It returns the JSON content in the response body.

func (*Client) ImageInspect

func (c *Client) ImageInspect(ctx context.Context, ref string) (*response.ImageInspect, error)

ImageInspect returns the image information.

func (*Client) ImageList

func (c *Client) ImageList(ctx context.Context, opt *ImageList) ([]response.ImageSummary, error)

ImageList returns a list of images in the docker host.

Experimental: Setting the [options.Manifest] will populate image.Summary.Manifests with information about image manifests. This is experimental and might change in the future without any backward compatibility.

func (*Client) ImageLoad

func (c *Client) ImageLoad(ctx context.Context, opt *ImageLoad) (*response.ImageLoad, error)

ImageLoad loads an image in the docker host from the client host. It's up to the caller to close the io.ReadCloser in the ImageLoadResponse returned by this function.

WithPlatform is an optional parameter that specifies the platform to load from the provided multi-platform image. This is only has effect if the input image is a multi-platform image.

func (*Client) ImagePull

func (c *Client) ImagePull(ctx context.Context, ref string, opt *ImagePull) (io.ReadCloser, error)

ImagePull requests the docker host to pull an image from a remote registry. It executes the privileged function if the operation is unauthorized and it tries one more time. It's up to the caller to handle the io.ReadCloser and close it properly.

func (*Client) ImagePush

func (c *Client) ImagePush(ctx context.Context, ref string) (io.ReadCloser, error)

ImagePush requests the docker host to push an image to a remote registry. It executes the privileged function if the operation is unauthorized and it tries one more time. It's up to the caller to handle the io.ReadCloser and close it properly.

func (*Client) ImageRemove

func (c *Client) ImageRemove(ctx context.Context, ref string, opt *ImageRemove) ([]response.ImageDelete, error)

ImageRemove removes an image from the docker host.

func (*Client) ImageSave

func (c *Client) ImageSave(ctx context.Context, opt *ImageSave) (io.ReadCloser, error)

ImageSave retrieves one or more images from the docker host as an io.ReadCloser.

func (*Client) ImageSearch

func (c *Client) ImageSearch(ctx context.Context, term string, opt *ImageSearch) ([]response.ImageSearchResult, error)

ImageSearch makes the docker host search by a term in a remote registry. The list of results is not sorted in any fashion.

func (*Client) ImageTag

func (c *Client) ImageTag(ctx context.Context, source, target string) error

ImageTag tags an image in the docker host.

func (*Client) ImagesPrune

func (c *Client) ImagesPrune(ctx context.Context, opt *ImagePrune) (*response.PruneReport, error)

ImagesPrune requests the daemon to delete unused data

func (*Client) NetworkConnect

func (c *Client) NetworkConnect(ctx context.Context, networkID string, opt *NetworkConnect) error

NetworkConnect connects a container to an existent network in the docker host.

func (*Client) NetworkCreate

func (c *Client) NetworkCreate(ctx context.Context, name string, opt *NetworkCreate) (*response.NetworkCreate, error)

NetworkCreate creates a new network in the docker host.

func (*Client) NetworkDisconnect

func (c *Client) NetworkDisconnect(ctx context.Context, networkID string, containerID string, force bool) error

NetworkDisconnect disconnects a container from an existent network in the docker host.

func (*Client) NetworkInspect

func (c *Client) NetworkInspect(ctx context.Context, networkID string, opt *NetworkInspect) (*response.NetworkInspect, error)

NetworkInspect returns the information for a specific network configured in the docker host.

func (*Client) NetworkList

func (c *Client) NetworkList(ctx context.Context, opt *NetworkList) ([]*response.NetworkSummary, error)

NetworkList returns the list of networks configured in the docker host.

func (*Client) NetworkRemove

func (c *Client) NetworkRemove(ctx context.Context, networkID string) error

NetworkRemove removes an existent network from the docker host.

func (*Client) NetworksPrune

func (c *Client) NetworksPrune(ctx context.Context, opt *NetworkPrune) (*response.NetworkPruneReport, error)

NetworksPrune requests the daemon to delete unused networks

func (*Client) SwarmInit

func (c *Client) SwarmInit(ctx context.Context, opt *SwarmInit) (token string, err error)

SwarmInit initializes the swarm.

func (*Client) SwarmInspect

func (c *Client) SwarmInspect(ctx context.Context) (*response.Swarm, error)

SwarmInspect inspects the swarm

func (*Client) SwarmJoin

func (c *Client) SwarmJoin(ctx context.Context, opt *SwarmJoin) error

SwarmJoin joins a node to the swarm.

func (*Client) SwarmLeave

func (c *Client) SwarmLeave(ctx context.Context, force bool) error

SwarmLeave leaves the swarm

func (*Client) Unwrap

func (c *Client) Unwrap() *client.Client

Unwrap returns the underlying client.Client

func (*Client) VolumeCreate

func (c *Client) VolumeCreate(ctx context.Context, opt *VolumeCreate) (*response.Volume, error)

VolumeCreate creates a volume in the docker host.

func (*Client) VolumeInspect

func (c *Client) VolumeInspect(ctx context.Context, name string) (*response.Volume, error)

VolumeInspect returns the information about a specific volume in the docker host.

func (*Client) VolumeInspectWithRaw

func (c *Client) VolumeInspectWithRaw(ctx context.Context, name string) (*response.Volume, []byte, error)

VolumeInspectWithRaw returns the information about a specific volume in the docker host and its raw representation

func (*Client) VolumeList

func (c *Client) VolumeList(ctx context.Context, opt *VolumeList) (*response.VolumeList, error)

VolumeList returns the volumes configured in the docker host.

func (*Client) VolumeRemove

func (c *Client) VolumeRemove(ctx context.Context, name string, force bool) error

VolumeRemove removes a volume from the docker host.

func (*Client) VolumeUpdate

func (c *Client) VolumeUpdate(ctx context.Context, name string, swarmVersionIndex uint64, opt *VolumeUpdate) error

VolumeUpdate updates a volume. This only works for Cluster Volumes, and only some fields can be updated.

func (*Client) VolumesPrune

func (c *Client) VolumesPrune(ctx context.Context, opt *VolumePrune) (*response.VolumePruneReport, error)

VolumesPrune requests the daemon to delete unused data

type Commit

type Commit struct {
	Reference string
	Comment   string
	Author    string
	Changes   []string
	Pause     bool
	Config    *containerkit.Container
}

Commit is options for ContainerCommit.

type CopyTo

type CopyTo struct {
	AllowOverwriteDirWithFile bool
	CopyUIDGID                bool
	Content                   io.Reader
}

CopyTo is options for ContainerCopyToContainer.

type Exec

type Exec struct {
	User          string
	Privileged    bool
	Tty           bool
	ConsoleWidth  uint
	ConsoleHeight uint
	AttachStdin   bool
	AttachStderr  bool
	AttachStdout  bool
	Detach        bool
	DetachKeys    string
	Env           []string
	WorkingDir    string
	Command       []string
}

Exec is options for ContainerExecCreate.

type ExecAttach

type ExecAttach struct {
	Detach        bool
	Tty           bool
	ConsoleWidth  uint
	ConsoleHeight uint
}

ExecAttach is options for ContainerExecAttach and ContainerExecAttachTerminal.

type ExecStart

type ExecStart struct {
	Detach        bool
	Tty           bool
	ConsoleWidth  uint
	ConsoleHeight uint
}

ExecStart is options for ContainerExecStart.

type Filter

type Filter struct {
	Key   string
	Value string
}

Filter is a key/value filter passed to list and prune operations.

type ImageBuild

type ImageBuild struct {
	dBuild.ImageBuildOptions
}

ImageBuild is options for ImageBuild. Fields match Docker's ImageBuildOptions.

type ImageCreate

type ImageCreate struct {
	Auth     auth.Auth
	Platform string
}

ImageCreate is options for ImageCreate.

type ImageImport

type ImageImport struct {
	Source     io.Reader
	SourceName string
	Tag        string
	Message    string
	Changes    []string
	Platform   string
}

ImageImport is options for ImageImport.

type ImageList

type ImageList struct {
	All            bool
	SharedSize     bool
	ContainerCount bool
	Manifests      bool
	Filters        []Filter
}

ImageList is options for ImageList.

type ImageLoad

type ImageLoad struct {
	Input     io.Reader
	Quiet     bool
	Platforms []ocispec.Platform
}

ImageLoad is options for ImageLoad.

type ImagePrune

type ImagePrune struct {
	Filters []Filter
}

ImagePrune is options for ImagesPrune.

type ImagePull

type ImagePull struct {
	Auth            auth.Auth
	All             bool
	CurrentPlatform bool
	Platform        string
	PrivilegeFunc   func(ctx context.Context) (string, error)
}

ImagePull is options for ImagePull.

type ImageRemove

type ImageRemove struct {
	Force         bool
	PruneChildren bool
	Platforms     []ocispec.Platform
}

ImageRemove is options for ImageRemove.

type ImageSave

type ImageSave struct {
	ImageIDs  []string
	Platforms []ocispec.Platform
}

ImageSave is options for ImageSave.

type ImageSearch

type ImageSearch struct {
	Auth          auth.Auth
	PrivilegeFunc func(ctx context.Context) (string, error)
	Filters       []Filter
	Limit         int
}

ImageSearch is options for ImageSearch.

type List

type List struct {
	Size    bool
	All     bool
	Latest  bool
	Since   string
	Before  string
	Limit   int
	Filters []Filter
}

List is options for ContainerList.

type LogCopier

type LogCopier struct {
	// contains filtered or unexported fields
}

LogCopier provides methods to copy Docker container logs

func NewLogCopier

func NewLogCopier(stdout io.Writer, stderr io.Writer) *LogCopier

NewLogCopier creates a new LogCopier instance for multiplexed streams If stderr is nil, it will use stdout for both streams

func (*LogCopier) Copy

func (lc *LogCopier) Copy(src io.Reader) (written int64, err error)

Copy copies the container log stream to the configured writers It handles Docker's multiplexed output format where stdout and stderr are combined with headers

func (*LogCopier) CopyWithPrefix

func (lc *LogCopier) CopyWithPrefix(src io.Reader, stdoutPrefix, stderrPrefix string) (written int64, err error)

CopyWithPrefix copies the container log stream and adds prefixes to stdout and stderr This is useful when you want to distinguish between the two streams in the output

type Logs

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

Logs is options for ContainerLogs.

type NetworkConnect

type NetworkConnect struct {
	Container string
	Endpoint  *network.EndpointSettings
}

NetworkConnect is options for NetworkConnect.

type NetworkCreate

type NetworkCreate struct {
	Driver     string
	Scope      string
	EnableIPv4 *bool
	EnableIPv6 *bool
	Internal   bool
	Attachable bool
	Ingress    bool
	ConfigOnly bool
	Options    map[string]string
	Labels     map[string]string
	IPAM       *NetworkIPAM
}

NetworkCreate is options for NetworkCreate.

type NetworkIPAM

type NetworkIPAM struct {
	Driver  string
	Options map[string]string
	Config  []NetworkIPAMConfig
}

NetworkIPAM is IPAM configuration for NetworkCreate.

type NetworkIPAMConfig

type NetworkIPAMConfig struct {
	Subnet    string
	IPRange   string
	Gateway   string
	Auxiliary map[string]string
}

NetworkIPAMConfig is a single IPAM pool.

type NetworkInspect

type NetworkInspect struct {
	Scope   string
	Verbose bool
}

NetworkInspect is options for NetworkInspect.

type NetworkList

type NetworkList struct {
	Filters []Filter
}

NetworkList is options for NetworkList.

type NetworkPrune

type NetworkPrune struct {
	Filters []Filter
}

NetworkPrune is options for NetworksPrune.

type Prune

type Prune struct {
	Filters []Filter
}

Prune is options for ContainerPrune.

type Remove

type Remove struct {
	Force   bool
	Volumes bool
	Links   bool
}

Remove is options for ContainerRemove.

type Resize

type Resize struct {
	Width  uint
	Height uint
}

Resize is options for ContainerExecResize and ContainerResize.

type SetClientOption

type SetClientOption func(*client.Client) error

SetClientOption is a configuration option to initialize a Client.

func FromEnv

func FromEnv() SetClientOption

FromEnv configures the client with values from environment variables. It is the equivalent of using the WithTLSClientConfigFromEnv, WithHostFromEnv, and WithVersionFromEnv options.

FromEnv uses the following environment variables:

  • DOCKER_HOST ([EnvOverrideHost]) to set the URL to the docker server.
  • DOCKER_API_VERSION ([EnvOverrideAPIVersion]) to set the version of the API to use, leave empty for latest.
  • DOCKER_CERT_PATH ([EnvOverrideCertPath]) to specify the directory from which to load the TLS certificates ("ca.pem", "cert.pem", "key.pem').
  • DOCKER_TLS_VERIFY ([EnvTLSVerify]) to enable or disable TLS verification (off by default).

func WithAPIVersionNegotiation

func WithAPIVersionNegotiation() SetClientOption

WithAPIVersionNegotiation enables automatic API version negotiation for the client. With this option enabled, the client automatically negotiates the API version to use when making requests. API version negotiation is performed on the first request; subsequent requests do not re-negotiate.

func WithDialContext

func WithDialContext(dialContext func(ctx context.Context, network, addr string) (net.Conn, error)) SetClientOption

WithDialContext applies the dialer to the client transport. This can be used to set the Timeout and KeepAlive settings of the client. It returns an error if the client does not have a http.Transport configured.

func WithHTTPClient

func WithHTTPClient(httpClient *http.Client) SetClientOption

WithHTTPClient overrides the client's HTTP client with the specified one.

func WithHTTPHeaders

func WithHTTPHeaders(headers map[string]string) SetClientOption

WithHTTPHeaders appends custom HTTP headers to the client's default headers. It does not allow for built-in headers (such as "User-Agent", if set) to be overridden. Also see WithUserAgent.

func WithHost

func WithHost(host string) SetClientOption

WithHost overrides the client host with the specified one.

func WithHostFromEnv

func WithHostFromEnv() SetClientOption

WithHostFromEnv overrides the client host with the host specified in the DOCKER_HOST ([EnvOverrideHost]) environment variable. If DOCKER_HOST is not set, or set to an empty value, the host is not modified.

func WithScheme

func WithScheme(scheme string) SetClientOption

WithScheme overrides the client scheme with the specified one.

func WithTLSClientConfig

func WithTLSClientConfig(cacertPath, certPath, keyPath string) SetClientOption

WithTLSClientConfig applies a TLS config to the client transport.

func WithTLSClientConfigFromEnv

func WithTLSClientConfigFromEnv() SetClientOption

WithTLSClientConfigFromEnv configures the client's TLS settings with the settings in the DOCKER_CERT_PATH ([EnvOverrideCertPath]) and DOCKER_TLS_VERIFY ([EnvTLSVerify]) environment variables. If DOCKER_CERT_PATH is not set or empty, TLS configuration is not modified.

WithTLSClientConfigFromEnv uses the following environment variables:

  • DOCKER_CERT_PATH ([EnvOverrideCertPath]) to specify the directory from which to load the TLS certificates ("ca.pem", "cert.pem", "key.pem").
  • DOCKER_TLS_VERIFY ([EnvTLSVerify]) to enable or disable TLS verification (off by default).

func WithTimeout

func WithTimeout(timeout time.Duration) SetClientOption

WithTimeout configures the time limit for requests made by the HTTP client.

func WithTraceOptions

func WithTraceOptions(opts ...otelhttp.Option) SetClientOption

WithTraceOptions sets tracing span options for the client.

func WithTraceProvider

func WithTraceProvider(provider trace.TracerProvider) SetClientOption

WithTraceProvider sets the trace provider for the client. If this is not set then the global trace provider will be used.

func WithUserAgent

func WithUserAgent(userAgent string) SetClientOption

WithUserAgent configures the User-Agent header to use for HTTP requests. It overrides any User-Agent set in headers. When set to an empty string, the User-Agent header is removed, and no header is sent.

func WithVersion

func WithVersion(version string) SetClientOption

WithVersion overrides the client version with the specified one. If an empty version is provided, the value is ignored to allow version negotiation (see WithAPIVersionNegotiation).

func WithVersionFromEnv

func WithVersionFromEnv() SetClientOption

WithVersionFromEnv overrides the client version with the version specified in the DOCKER_API_VERSION ([EnvOverrideAPIVersion]) environment variable. If DOCKER_API_VERSION is not set, or set to an empty value, the version is not modified.

type Start

type Start struct {
	CheckpointID  string
	CheckpointDir string
}

Start is options for ContainerStart.

type Stop

type Stop struct {
	Timeout *int
	Signal  string
}

Stop is options for ContainerStop and ContainerRestart.

type SwarmInit

type SwarmInit struct {
	ListenAddr       string
	AdvertiseAddr    string
	DataPathAddr     string
	DataPathPort     uint32
	ForceNewCluster  bool
	Spec             swarm.Spec
	AutoLockManagers bool
	Availability     swarm.NodeAvailability
	DefaultAddrPool  []string
	SubnetSize       uint32
}

SwarmInit is options for SwarmInit.

type SwarmJoin

type SwarmJoin struct {
	ListenAddr    string
	AdvertiseAddr string
	DataPathAddr  string
	RemoteAddrs   []string
	JoinToken     string
	Availability  swarm.NodeAvailability
}

SwarmJoin is options for SwarmJoin.

type Update

type Update struct {
	RestartPolicy        containerkit.RestartPolicy
	RestartMaxRetry      int
	CPUShares            int64
	Memory               int64
	NanoCPUs             int64
	CgroupParent         string
	BlkioWeight          uint16
	BlkioWeightDevice    []*blkiodev.WeightDevice
	BlkioDeviceReadBps   []*blkiodev.ThrottleDevice
	BlkioDeviceWriteBps  []*blkiodev.ThrottleDevice
	BlkioDeviceReadIOps  []*blkiodev.ThrottleDevice
	BlkioDeviceWriteIOps []*blkiodev.ThrottleDevice
	CPUPeriod            int64
	CPUQuota             int64
	CPURealtimePeriod    int64
	CPURealtimeRuntime   int64
	CpusetCpus           string
	CpusetMems           string
	Devices              []container.DeviceMapping
	DeviceCgroupRules    []string
	DeviceRequests       []container.DeviceRequest
	MemoryReservation    int64
	MemorySwap           int64
	MemorySwappiness     *int64
	OomKillDisable       *bool
	PidsLimit            *int64
	Ulimits              []*units.Ulimit
	CPUCount             int64
	CPUPercent           int64
	IOMaximumIOps        uint64
	IOMaximumBandwidth   uint64
}

Update is options for ContainerUpdate. Resource fields match Docker's UpdateConfig.

type VolumeCreate

type VolumeCreate struct {
	Name              string
	Driver            string
	DriverOpts        map[string]string
	Labels            map[string]string
	ClusterVolumeSpec *volume.ClusterVolumeSpec
}

VolumeCreate is options for VolumeCreate.

type VolumeList

type VolumeList struct {
	Filters []Filter
}

VolumeList is options for VolumeList.

type VolumePrune

type VolumePrune struct {
	Filters []Filter
}

VolumePrune is options for VolumesPrune.

type VolumeUpdate

type VolumeUpdate struct {
	ClusterVolumeSpec *volume.ClusterVolumeSpec
}

VolumeUpdate is options for VolumeUpdate.

type WaitCondition

type WaitCondition string

WaitCondition is a container state to wait for.

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

Directories

Path Synopsis
Package response provides thin wrappers around the docker client response types.
Package response provides thin wrappers around the docker client response types.
Package terminal
Package terminal

Jump to

Keyboard shortcuts

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