Documentation
¶
Overview ¶
Package docker provides a client for the Docker remote API.
See http://goo.gl/G3plxW for more details on the remote API.
Index ¶
- Constants
- Variables
- func ParseRepositoryTag(repoTag string) (repository string, tag string)
- type APIContainers
- type APIEvents
- type APIImageSearch
- type APIImages
- type APIPort
- type APIVersion
- type AttachToContainerOptions
- type AuthConfiguration
- type AuthConfigurations
- type BuildImageOptions
- type Change
- type ChangeType
- type Client
- func NewClient(endpoint string) (*Client, error)
- func NewTLSClient(endpoint string, cert, key, ca string) (*Client, error)
- func NewVersionedClient(endpoint string, apiVersionString string) (*Client, error)
- func NewVersionnedTLSClient(endpoint string, cert, key, ca, apiVersionString string) (*Client, error)
- func (c *Client) AddEventListener(listener chan<- *APIEvents) error
- func (c *Client) AttachToContainer(opts AttachToContainerOptions) error
- func (c *Client) BuildImage(opts BuildImageOptions) error
- func (c *Client) CommitContainer(opts CommitContainerOptions) (*Image, error)
- func (c *Client) ContainerChanges(id string) ([]Change, error)
- func (c *Client) CopyFromContainer(opts CopyFromContainerOptions) error
- func (c *Client) CreateContainer(opts CreateContainerOptions) (*Container, error)
- func (c *Client) CreateExec(opts CreateExecOptions) (*Exec, error)
- func (c *Client) ExportContainer(opts ExportContainerOptions) error
- func (c *Client) ExportImage(opts ExportImageOptions) error
- func (c *Client) ImageHistory(name string) ([]ImageHistory, error)
- func (c *Client) ImportImage(opts ImportImageOptions) error
- func (c *Client) Info() (*Env, error)
- func (c *Client) InspectContainer(id string) (*Container, error)
- func (c *Client) InspectImage(name string) (*Image, error)
- func (c *Client) KillContainer(opts KillContainerOptions) error
- func (c *Client) ListContainers(opts ListContainersOptions) ([]APIContainers, error)
- func (c *Client) ListImages(opts ListImagesOptions) ([]APIImages, error)
- func (c *Client) LoadImage(opts LoadImageOptions) error
- func (c *Client) Logs(opts LogsOptions) error
- func (c *Client) PauseContainer(id string) error
- func (c *Client) Ping() error
- func (c *Client) PullImage(opts PullImageOptions, auth AuthConfiguration) error
- func (c *Client) PushImage(opts PushImageOptions, auth AuthConfiguration) error
- func (c *Client) RemoveContainer(opts RemoveContainerOptions) error
- func (c *Client) RemoveEventListener(listener chan *APIEvents) error
- func (c *Client) RemoveImage(name string) error
- func (c *Client) ResizeContainerTTY(id string, height, width int) error
- func (c *Client) ResizeExecTTY(id string, height, width int) error
- func (c *Client) RestartContainer(id string, timeout uint) error
- func (c *Client) SearchImages(term string) ([]APIImageSearch, error)
- func (c *Client) StartContainer(id string, hostConfig *HostConfig) error
- func (c *Client) StartExec(id string, opts StartExecOptions) error
- func (c *Client) StopContainer(id string, timeout uint) error
- func (c *Client) TagImage(name string, opts TagImageOptions) error
- func (c *Client) TopContainer(id string, psArgs string) (TopResult, error)
- func (c *Client) UnpauseContainer(id string) error
- func (c *Client) Version() (*Env, error)
- func (c *Client) WaitContainer(id string) (int, error)
- type CommitContainerOptions
- type Config
- type Container
- type ContainerAlreadyRunning
- type ContainerNotRunning
- type CopyFromContainerOptions
- type CreateContainerOptions
- type CreateExecOptions
- type Env
- func (env *Env) Decode(src io.Reader) error
- func (env *Env) Exists(key string) bool
- func (env *Env) Get(key string) (value string)
- func (env *Env) GetBool(key string) (value bool)
- func (env *Env) GetInt(key string) int
- func (env *Env) GetInt64(key string) int64
- func (env *Env) GetJSON(key string, iface interface{}) error
- func (env *Env) GetList(key string) []string
- func (env *Env) Map() map[string]string
- func (env *Env) Set(key, value string)
- func (env *Env) SetAuto(key string, value interface{})
- func (env *Env) SetBool(key string, value bool)
- func (env *Env) SetInt(key string, value int)
- func (env *Env) SetInt64(key string, value int64)
- func (env *Env) SetJSON(key string, value interface{}) error
- func (env *Env) SetList(key string, value []string) error
- type Error
- type Exec
- type ExportContainerOptions
- type ExportImageOptions
- type HostConfig
- type Image
- type ImageHistory
- type ImagePre012
- type ImportImageOptions
- type KeyValuePair
- type KillContainerOptions
- type ListContainersOptions
- type ListImagesOptions
- type LoadImageOptions
- type LogsOptions
- type NetworkSettings
- type NoSuchContainer
- type NoSuchExec
- type Port
- type PortBinding
- type PortMapping
- type PullImageOptions
- type PushImageOptions
- type RemoveContainerOptions
- type RestartPolicy
- type Signal
- type StartExecOptions
- type State
- type TagImageOptions
- type TopResult
Examples ¶
Constants ¶
const ( SIGABRT = Signal(0x6) SIGALRM = Signal(0xe) SIGBUS = Signal(0x7) SIGCHLD = Signal(0x11) SIGCLD = Signal(0x11) SIGCONT = Signal(0x12) SIGFPE = Signal(0x8) SIGHUP = Signal(0x1) SIGILL = Signal(0x4) SIGINT = Signal(0x2) SIGIO = Signal(0x1d) SIGIOT = Signal(0x6) SIGKILL = Signal(0x9) SIGPIPE = Signal(0xd) SIGPOLL = Signal(0x1d) SIGPROF = Signal(0x1b) SIGPWR = Signal(0x1e) SIGQUIT = Signal(0x3) SIGSEGV = Signal(0xb) SIGSTKFLT = Signal(0x10) SIGSTOP = Signal(0x13) SIGSYS = Signal(0x1f) SIGTERM = Signal(0xf) SIGTRAP = Signal(0x5) SIGTSTP = Signal(0x14) SIGTTIN = Signal(0x15) SIGTTOU = Signal(0x16) SIGUNUSED = Signal(0x1f) SIGURG = Signal(0x17) SIGUSR1 = Signal(0xa) SIGUSR2 = Signal(0xc) SIGVTALRM = Signal(0x1a) SIGWINCH = Signal(0x1c) SIGXCPU = Signal(0x18) SIGXFSZ = Signal(0x19) )
These values represent all signals available on Linux, where containers will be running.
Variables ¶
var ( // ErrInvalidEndpoint is returned when the endpoint is not a valid HTTP URL. ErrInvalidEndpoint = errors.New("invalid endpoint") // ErrConnectionRefused is returned when the client cannot connect to the given endpoint. ErrConnectionRefused = errors.New("cannot connect to Docker endpoint") )
var ( // ErrNoListeners is the error returned when no listeners are available // to receive an event. ErrNoListeners = errors.New("no listeners present to receive event") // ErrListenerAlreadyExists is the error returned when the listerner already // exists. ErrListenerAlreadyExists = errors.New("listener already exists for docker events") // EOFEvent is sent when the event listener receives an EOF error. EOFEvent = &APIEvents{ Status: "EOF", } )
var ( // ErrNoSuchImage is the error returned when the image does not exist. ErrNoSuchImage = errors.New("no such image") // ErrMissingRepo is the error returned when the remote repository is // missing. ErrMissingRepo = errors.New("missing remote repository e.g. 'github.com/user/repo'") // ErrMissingOutputStream is the error returned when no output stream // is provided to some calls, like BuildImage. ErrMissingOutputStream = errors.New("missing output stream") // ErrMultipleContexts is the error returned when both a ContextDir and // InputStream are provided in BuildImageOptions ErrMultipleContexts = errors.New("image build may not be provided BOTH context dir and input stream") )
Functions ¶
func ParseRepositoryTag ¶
ParseRepositoryTag gets the name of the repository and returns it splitted in two parts: the repository and the tag.
Some examples:
localhost.localdomain:5000/samalba/hipache:latest -> localhost.localdomain:5000/samalba/hipache, latest localhost.localdomain:5000/samalba/hipache -> localhost.localdomain:5000/samalba/hipache, ""
Types ¶
type APIContainers ¶
type APIContainers struct { ID string `json:"Id" yaml:"Id"` Image string `json:"Image,omitempty" yaml:"Image,omitempty"` Command string `json:"Command,omitempty" yaml:"Command,omitempty"` Created int64 `json:"Created,omitempty" yaml:"Created,omitempty"` Status string `json:"Status,omitempty" yaml:"Status,omitempty"` Ports []APIPort `json:"Ports,omitempty" yaml:"Ports,omitempty"` SizeRw int64 `json:"SizeRw,omitempty" yaml:"SizeRw,omitempty"` SizeRootFs int64 `json:"SizeRootFs,omitempty" yaml:"SizeRootFs,omitempty"` Names []string `json:"Names,omitempty" yaml:"Names,omitempty"` }
APIContainers represents a container.
See http://goo.gl/QeFH7U for more details.
type APIEvents ¶
type APIEvents struct { Status string `json:"Status,omitempty" yaml:"Status,omitempty"` ID string `json:"ID,omitempty" yaml:"ID,omitempty"` From string `json:"From,omitempty" yaml:"From,omitempty"` Time int64 `json:"Time,omitempty" yaml:"Time,omitempty"` }
APIEvents represents an event returned by the API.
type APIImageSearch ¶ added in v0.5.2
type APIImageSearch struct { Description string `json:"description,omitempty" yaml:"description,omitempty"` IsOfficial bool `json:"is_official,omitempty" yaml:"is_official,omitempty"` IsAutomated bool `json:"is_automated,omitempty" yaml:"is_automated,omitempty"` Name string `json:"name,omitempty" yaml:"name,omitempty"` StarCount int `json:"star_count,omitempty" yaml:"star_count,omitempty"` }
APIImageSearch reflect the result of a search on the dockerHub
See http://goo.gl/xI5lLZ for more details.
type APIImages ¶
type APIImages struct { ID string `json:"Id" yaml:"Id"` RepoTags []string `json:"RepoTags,omitempty" yaml:"RepoTags,omitempty"` Created int64 `json:"Created,omitempty" yaml:"Created,omitempty"` Size int64 `json:"Size,omitempty" yaml:"Size,omitempty"` VirtualSize int64 `json:"VirtualSize,omitempty" yaml:"VirtualSize,omitempty"` ParentID string `json:"ParentId,omitempty" yaml:"ParentId,omitempty"` }
APIImages represent an image returned in the ListImages call.
type APIPort ¶
type APIPort struct { PrivatePort int64 `json:"PrivatePort,omitempty" yaml:"PrivatePort,omitempty"` PublicPort int64 `json:"PublicPort,omitempty" yaml:"PublicPort,omitempty"` Type string `json:"Type,omitempty" yaml:"Type,omitempty"` IP string `json:"IP,omitempty" yaml:"IP,omitempty"` }
APIPort is a type that represents a port mapping returned by the Docker API
type APIVersion ¶ added in v0.7.2
type APIVersion []int
APIVersion is an internal representation of a version of the Remote API.
func NewAPIVersion ¶ added in v0.7.2
func NewAPIVersion(input string) (APIVersion, error)
NewAPIVersion returns an instance of APIVersion for the given string.
The given string must be in the form <major>.<minor>.<patch>, where <major>, <minor> and <patch> are integer numbers.
func (APIVersion) GreaterThan ¶ added in v0.7.2
func (version APIVersion) GreaterThan(other APIVersion) bool
GreaterThan is a function for comparing APIVersion structs
func (APIVersion) GreaterThanOrEqualTo ¶ added in v0.7.2
func (version APIVersion) GreaterThanOrEqualTo(other APIVersion) bool
GreaterThanOrEqualTo is a function for comparing APIVersion structs
func (APIVersion) LessThan ¶ added in v0.7.2
func (version APIVersion) LessThan(other APIVersion) bool
LessThan is a function for comparing APIVersion structs
func (APIVersion) LessThanOrEqualTo ¶ added in v0.7.2
func (version APIVersion) LessThanOrEqualTo(other APIVersion) bool
LessThanOrEqualTo is a function for comparing APIVersion structs
func (APIVersion) String ¶ added in v0.7.2
func (version APIVersion) String() string
type AttachToContainerOptions ¶
type AttachToContainerOptions struct { Container string `qs:"-"` InputStream io.Reader `qs:"-"` OutputStream io.Writer `qs:"-"` ErrorStream io.Writer `qs:"-"` // Get container logs, sending it to OutputStream. Logs bool // Stream the response? Stream bool // Attach to stdin, and use InputStream. Stdin bool // Attach to stdout, and use OutputStream. Stdout bool // Attach to stderr, and use ErrorStream. Stderr bool // If set, after a successful connect, a sentinel will be sent and then the // client will block on receive before continuing. // // It must be an unbuffered channel. Using a buffered channel can lead // to unexpected behavior. Success chan struct{} // Use raw terminal? Usually true when the container contains a TTY. RawTerminal bool `qs:"-"` }
AttachToContainerOptions is the set of options that can be used when attaching to a container.
See http://goo.gl/RRAhws for more details.
type AuthConfiguration ¶
type AuthConfiguration struct { Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` Email string `json:"email,omitempty"` ServerAddress string `json:"serveraddress,omitempty"` }
AuthConfiguration represents authentication options to use in the PushImage method. It represents the authentication in the Docker index server.
type AuthConfigurations ¶ added in v0.7.2
type AuthConfigurations struct {
Configs map[string]AuthConfiguration `json:"configs"`
}
AuthConfigurations represents authentication options to use for the PushImage method accommodating the new X-Registry-Config header
type BuildImageOptions ¶
type BuildImageOptions struct { Name string `qs:"t"` NoCache bool `qs:"nocache"` SuppressOutput bool `qs:"q"` RmTmpContainer bool `qs:"rm"` ForceRmTmpContainer bool `qs:"forcerm"` InputStream io.Reader `qs:"-"` OutputStream io.Writer `qs:"-"` RawJSONStream bool `qs:"-"` Remote string `qs:"remote"` Auth AuthConfiguration `qs:"-"` // for older docker X-Registry-Auth header AuthConfigs AuthConfigurations `qs:"-"` // for newer docker X-Registry-Config header ContextDir string `qs:"-"` }
BuildImageOptions present the set of informations available for building an image from a tarfile with a Dockerfile in it.
For more details about the Docker building process, see http://goo.gl/tlPXPu.
type Change ¶
type Change struct { Path string Kind ChangeType }
Change represents a change in a container.
See http://goo.gl/QkW9sH for more details.
type ChangeType ¶
type ChangeType int
ChangeType is a type for constants indicating the type of change in a container
const ( // ChangeModify is the ChangeType for container modifications ChangeModify ChangeType = iota // ChangeAdd is the ChangeType for additions to a container ChangeAdd // ChangeDelete is the ChangeType for deletions from a container ChangeDelete )
type Client ¶
type Client struct { SkipServerVersionCheck bool HTTPClient *http.Client TLSConfig *tls.Config // contains filtered or unexported fields }
Client is the basic type of this package. It provides methods for interaction with the API.
func NewClient ¶
NewClient returns a Client instance ready for communication with the given server endpoint. It will use the latest remote API version available in the server.
func NewTLSClient ¶ added in v0.7.2
NewTLSClient returns a Client instance ready for TLS communications with the givens server endpoint, key and certificates . It will use the latest remote API version available in the server.
func NewVersionedClient ¶
NewVersionedClient returns a Client instance ready for communication with the given server endpoint, using a specific remote API version.
func NewVersionnedTLSClient ¶ added in v0.7.2
func NewVersionnedTLSClient(endpoint string, cert, key, ca, apiVersionString string) (*Client, error)
NewVersionnedTLSClient returns a Client instance ready for TLS communications with the givens server endpoint, key and certificates, using a specific remote API version.
func (*Client) AddEventListener ¶
AddEventListener adds a new listener to container events in the Docker API.
The parameter is a channel through which events will be sent.
func (*Client) AttachToContainer ¶
func (c *Client) AttachToContainer(opts AttachToContainerOptions) error
AttachToContainer attaches to a container, using the given options.
See http://goo.gl/RRAhws for more details.
Example ¶
client, err := docker.NewClient("http://localhost:4243") if err != nil { log.Fatal(err) } client.SkipServerVersionCheck = true // Reading logs from container a84849 and sending them to buf. var buf bytes.Buffer err = client.AttachToContainer(docker.AttachToContainerOptions{ Container: "a84849", OutputStream: &buf, Logs: true, Stdout: true, Stderr: true, }) if err != nil { log.Fatal(err) } log.Println(buf.String()) buf.Reset() err = client.AttachToContainer(docker.AttachToContainerOptions{ Container: "a84849", OutputStream: &buf, Stdout: true, Stream: true, }) if err != nil { log.Fatal(err) } log.Println(buf.String())
Output:
func (*Client) BuildImage ¶
func (c *Client) BuildImage(opts BuildImageOptions) error
BuildImage builds an image from a tarball's url or a Dockerfile in the input stream.
See http://goo.gl/wRsW76 for more details.
Example ¶
client, err := docker.NewClient("http://localhost:4243") if err != nil { log.Fatal(err) } t := time.Now() inputbuf, outputbuf := bytes.NewBuffer(nil), bytes.NewBuffer(nil) tr := tar.NewWriter(inputbuf) tr.WriteHeader(&tar.Header{Name: "Dockerfile", Size: 10, ModTime: t, AccessTime: t, ChangeTime: t}) tr.Write([]byte("FROM base\n")) tr.Close() opts := docker.BuildImageOptions{ Name: "test", InputStream: inputbuf, OutputStream: outputbuf, } if err := client.BuildImage(opts); err != nil { log.Fatal(err) }
Output:
func (*Client) CommitContainer ¶
func (c *Client) CommitContainer(opts CommitContainerOptions) (*Image, error)
CommitContainer creates a new image from a container's changes.
See http://goo.gl/Jn8pe8 for more details.
func (*Client) ContainerChanges ¶
ContainerChanges returns changes in the filesystem of the given container.
See http://goo.gl/QkW9sH for more details.
func (*Client) CopyFromContainer ¶
func (c *Client) CopyFromContainer(opts CopyFromContainerOptions) error
CopyFromContainer copy files or folders from a container, using a given resource.
See http://goo.gl/rINMlw for more details.
Example ¶
client, err := docker.NewClient("http://localhost:4243") if err != nil { log.Fatal(err) } cid := "a84849" var buf bytes.Buffer filename := "/tmp/output.txt" err = client.CopyFromContainer(docker.CopyFromContainerOptions{ Container: cid, Resource: filename, OutputStream: &buf, }) if err != nil { log.Fatalf("Error while copying from %s: %s\n", cid, err) } content := new(bytes.Buffer) r := bytes.NewReader(buf.Bytes()) tr := tar.NewReader(r) tr.Next() if err != nil && err != io.EOF { log.Fatal(err) } if _, err := io.Copy(content, tr); err != nil { log.Fatal(err) } log.Println(buf.String())
Output:
func (*Client) CreateContainer ¶
func (c *Client) CreateContainer(opts CreateContainerOptions) (*Container, error)
CreateContainer creates a new container, returning the container instance, or an error in case of failure.
See http://goo.gl/mErxNp for more details.
func (*Client) CreateExec ¶ added in v0.5.2
func (c *Client) CreateExec(opts CreateExecOptions) (*Exec, error)
CreateExec sets up an exec instance in a running container `id`, returning the exec instance, or an error in case of failure.
See http://goo.gl/8izrzI for more details
func (*Client) ExportContainer ¶
func (c *Client) ExportContainer(opts ExportContainerOptions) error
ExportContainer export the contents of container id as tar archive and prints the exported contents to stdout.
See http://goo.gl/hnzE62 for more details.
func (*Client) ExportImage ¶
func (c *Client) ExportImage(opts ExportImageOptions) error
ExportImage exports an image (as a tar file) into the stream
See http://goo.gl/mi6kvk for more details.
func (*Client) ImageHistory ¶ added in v0.5.2
func (c *Client) ImageHistory(name string) ([]ImageHistory, error)
ImageHistory returns the history of the image by its name or ID.
See http://goo.gl/2oJmNs for more details.
func (*Client) ImportImage ¶
func (c *Client) ImportImage(opts ImportImageOptions) error
ImportImage imports an image from a url, a file or stdin
See http://goo.gl/PhBKnS for more details.
func (*Client) Info ¶
Info returns system-wide information about the Docker server.
See http://goo.gl/wmqZsW for more details.
func (*Client) InspectContainer ¶
InspectContainer returns information about a container by its ID.
See http://goo.gl/CxVuJ5 for more details.
func (*Client) InspectImage ¶
InspectImage returns an image by its name or ID.
See http://goo.gl/Q112NY for more details.
func (*Client) KillContainer ¶
func (c *Client) KillContainer(opts KillContainerOptions) error
KillContainer kills a container, returning an error in case of failure.
See http://goo.gl/TFkECx for more details.
func (*Client) ListContainers ¶
func (c *Client) ListContainers(opts ListContainersOptions) ([]APIContainers, error)
ListContainers returns a slice of containers matching the given criteria.
See http://goo.gl/6Y4Gz7 for more details.
func (*Client) ListImages ¶
func (c *Client) ListImages(opts ListImagesOptions) ([]APIImages, error)
ListImages returns the list of available images in the server.
See http://goo.gl/2rOLFF for more details.
func (*Client) LoadImage ¶
func (c *Client) LoadImage(opts LoadImageOptions) error
LoadImage imports a tarball docker image
See http://goo.gl/Y8NNCq for more details.
func (*Client) Logs ¶
func (c *Client) Logs(opts LogsOptions) error
Logs gets stdout and stderr logs from the specified container.
See http://goo.gl/rLhKSU for more details.
func (*Client) PauseContainer ¶
PauseContainer pauses the given container.
See http://goo.gl/AM5t42 for more details.
func (*Client) PullImage ¶
func (c *Client) PullImage(opts PullImageOptions, auth AuthConfiguration) error
PullImage pulls an image from a remote registry, logging progress to w.
See http://goo.gl/ACyYNS for more details.
func (*Client) PushImage ¶
func (c *Client) PushImage(opts PushImageOptions, auth AuthConfiguration) error
PushImage pushes an image to a remote registry, logging progress to w.
An empty instance of AuthConfiguration may be used for unauthenticated pushes.
See http://goo.gl/pN8A3P for more details.
func (*Client) RemoveContainer ¶
func (c *Client) RemoveContainer(opts RemoveContainerOptions) error
RemoveContainer removes a container, returning an error in case of failure.
See http://goo.gl/ZB83ji for more details.
func (*Client) RemoveEventListener ¶
RemoveEventListener removes a listener from the monitor.
func (*Client) RemoveImage ¶
RemoveImage removes an image by its name or ID.
See http://goo.gl/znj0wM for more details.
func (*Client) ResizeContainerTTY ¶
ResizeContainerTTY resizes the terminal to the given height and width.
func (*Client) ResizeExecTTY ¶ added in v0.5.2
ResizeExecTTY resizes the tty session used by the exec command id. This API is valid only if Tty was specified as part of creating and starting the exec command.
See http://goo.gl/YDSx1f for more details
func (*Client) RestartContainer ¶
RestartContainer stops a container, killing it after the given timeout (in seconds), during the stop process.
See http://goo.gl/VOzR2n for more details.
func (*Client) SearchImages ¶ added in v0.5.2
func (c *Client) SearchImages(term string) ([]APIImageSearch, error)
SearchImages search the docker hub with a specific given term.
See http://goo.gl/xI5lLZ for more details.
func (*Client) StartContainer ¶
func (c *Client) StartContainer(id string, hostConfig *HostConfig) error
StartContainer starts a container, returning an error in case of failure.
See http://goo.gl/iM5GYs for more details.
func (*Client) StartExec ¶ added in v0.5.2
func (c *Client) StartExec(id string, opts StartExecOptions) error
StartExec starts a previously set up exec instance id. If opts.Detach is true, it returns after starting the exec command. Otherwise, it sets up an interactive session with the exec command.
See http://goo.gl/JW8Lxl for more details
func (*Client) StopContainer ¶
StopContainer stops a container, killing it after the given timeout (in seconds).
See http://goo.gl/EbcpXt for more details.
func (*Client) TagImage ¶
func (c *Client) TagImage(name string, opts TagImageOptions) error
TagImage adds a tag to the image identified by the given name.
See http://goo.gl/5g6qFy for more details.
func (*Client) TopContainer ¶ added in v0.5.2
TopContainer returns processes running inside a container
See http://goo.gl/qu4gse for more details.
func (*Client) UnpauseContainer ¶
UnpauseContainer pauses the given container.
See http://goo.gl/eBrNSL for more details.
func (*Client) Version ¶
Version returns version information about the docker server.
See http://goo.gl/BOZrF5 for more details.
func (*Client) WaitContainer ¶
WaitContainer blocks until the given container stops, return the exit code of the container status.
See http://goo.gl/J88DHU for more details.
type CommitContainerOptions ¶
type CommitContainerOptions struct { Container string Repository string `qs:"repo"` Tag string Message string `qs:"m"` Author string Run *Config `qs:"-"` }
CommitContainerOptions aggregates parameters to the CommitContainer method.
See http://goo.gl/Jn8pe8 for more details.
type Config ¶
type Config struct { Hostname string `json:"Hostname,omitempty" yaml:"Hostname,omitempty"` Domainname string `json:"Domainname,omitempty" yaml:"Domainname,omitempty"` User string `json:"User,omitempty" yaml:"User,omitempty"` Memory int64 `json:"Memory,omitempty" yaml:"Memory,omitempty"` MemorySwap int64 `json:"MemorySwap,omitempty" yaml:"MemorySwap,omitempty"` CPUSet string `json:"Cpuset,omitempty" yaml:"Cpuset,omitempty"` AttachStdin bool `json:"AttachStdin,omitempty" yaml:"AttachStdin,omitempty"` AttachStdout bool `json:"AttachStdout,omitempty" yaml:"AttachStdout,omitempty"` AttachStderr bool `json:"AttachStderr,omitempty" yaml:"AttachStderr,omitempty"` PortSpecs []string `json:"PortSpecs,omitempty" yaml:"PortSpecs,omitempty"` ExposedPorts map[Port]struct{} `json:"ExposedPorts,omitempty" yaml:"ExposedPorts,omitempty"` Tty bool `json:"Tty,omitempty" yaml:"Tty,omitempty"` OpenStdin bool `json:"OpenStdin,omitempty" yaml:"OpenStdin,omitempty"` StdinOnce bool `json:"StdinOnce,omitempty" yaml:"StdinOnce,omitempty"` Env []string `json:"Env,omitempty" yaml:"Env,omitempty"` Cmd []string `json:"Cmd,omitempty" yaml:"Cmd,omitempty"` DNS []string `json:"Dns,omitempty" yaml:"Dns,omitempty"` // For Docker API v1.9 and below only Image string `json:"Image,omitempty" yaml:"Image,omitempty"` Volumes map[string]struct{} `json:"Volumes,omitempty" yaml:"Volumes,omitempty"` VolumesFrom string `json:"VolumesFrom,omitempty" yaml:"VolumesFrom,omitempty"` WorkingDir string `json:"WorkingDir,omitempty" yaml:"WorkingDir,omitempty"` Entrypoint []string `json:"Entrypoint,omitempty" yaml:"Entrypoint,omitempty"` NetworkDisabled bool `json:"NetworkDisabled,omitempty" yaml:"NetworkDisabled,omitempty"` }
Config is the list of configuration options used when creating a container. Config does not the options that are specific to starting a container on a given host. Those are contained in HostConfig
type Container ¶
type Container struct { ID string `json:"Id" yaml:"Id"` Created time.Time `json:"Created,omitempty" yaml:"Created,omitempty"` Path string `json:"Path,omitempty" yaml:"Path,omitempty"` Args []string `json:"Args,omitempty" yaml:"Args,omitempty"` Config *Config `json:"Config,omitempty" yaml:"Config,omitempty"` State State `json:"State,omitempty" yaml:"State,omitempty"` Image string `json:"Image,omitempty" yaml:"Image,omitempty"` NetworkSettings *NetworkSettings `json:"NetworkSettings,omitempty" yaml:"NetworkSettings,omitempty"` SysInitPath string `json:"SysInitPath,omitempty" yaml:"SysInitPath,omitempty"` ResolvConfPath string `json:"ResolvConfPath,omitempty" yaml:"ResolvConfPath,omitempty"` HostnamePath string `json:"HostnamePath,omitempty" yaml:"HostnamePath,omitempty"` HostsPath string `json:"HostsPath,omitempty" yaml:"HostsPath,omitempty"` Name string `json:"Name,omitempty" yaml:"Name,omitempty"` Driver string `json:"Driver,omitempty" yaml:"Driver,omitempty"` Volumes map[string]string `json:"Volumes,omitempty" yaml:"Volumes,omitempty"` VolumesRW map[string]bool `json:"VolumesRW,omitempty" yaml:"VolumesRW,omitempty"` HostConfig *HostConfig `json:"HostConfig,omitempty" yaml:"HostConfig,omitempty"` }
Container is the type encompasing everything about a container - its config, hostconfig, etc.
type ContainerAlreadyRunning ¶
type ContainerAlreadyRunning struct {
ID string
}
ContainerAlreadyRunning is the error returned when a given container is already running.
func (*ContainerAlreadyRunning) Error ¶
func (err *ContainerAlreadyRunning) Error() string
type ContainerNotRunning ¶
type ContainerNotRunning struct {
ID string
}
ContainerNotRunning is the error returned when a given container is not running.
func (*ContainerNotRunning) Error ¶
func (err *ContainerNotRunning) Error() string
type CopyFromContainerOptions ¶
type CopyFromContainerOptions struct { OutputStream io.Writer `json:"-"` Container string `json:"-"` Resource string }
CopyFromContainerOptions is the set of options that can be used when copying files or folders from a container.
See http://goo.gl/rINMlw for more details.
type CreateContainerOptions ¶
type CreateContainerOptions struct { Name string Config *Config `qs:"-"` HostConfig *HostConfig }
CreateContainerOptions specify parameters to the CreateContainer function.
See http://goo.gl/2xxQQK for more details.
type CreateExecOptions ¶ added in v0.5.2
type CreateExecOptions struct { AttachStdin bool `json:"AttachStdin,omitempty" yaml:"AttachStdin,omitempty"` AttachStdout bool `json:"AttachStdout,omitempty" yaml:"AttachStdout,omitempty"` AttachStderr bool `json:"AttachStderr,omitempty" yaml:"AttachStderr,omitempty"` Tty bool `json:"Tty,omitempty" yaml:"Tty,omitempty"` Cmd []string `json:"Cmd,omitempty" yaml:"Cmd,omitempty"` Container string `json:"Container,omitempty" yaml:"Container,omitempty"` }
CreateExecOptions specify parameters to the CreateExecContainer function.
See http://goo.gl/8izrzI for more details
type Env ¶
type Env []string
Env represents a list of key-pair represented in the form KEY=VALUE.
func (*Env) Decode ¶
Decode decodes `src` as a json dictionary, and adds each decoded key-value pair to the environment.
If `src` cannot be decoded as a json dictionary, an error is returned.
func (*Env) Exists ¶
Exists checks whether the given key is defined in the internal Env representation.
func (*Env) GetBool ¶
GetBool returns a boolean representation of the given key. The key is false whenever its value if 0, no, false, none or an empty string. Any other value will be interpreted as true.
func (*Env) GetInt ¶
GetInt returns the value of the provided key, converted to int.
It the value cannot be represented as an integer, it returns -1.
func (*Env) GetInt64 ¶
GetInt64 returns the value of the provided key, converted to int64.
It the value cannot be represented as an integer, it returns -1.
func (*Env) GetJSON ¶
GetJSON unmarshals the value of the provided key in the provided iface.
iface is a value that can be provided to the json.Unmarshal function.
Example ¶
type Person struct { Name string Age int } p := Person{Name: "Gopher", Age: 4} var e docker.Env e.Set("person", `{"name":"Gopher","age":4}`) err := e.GetJSON("person", &p) if err != nil { log.Fatal(err) }
Output:
func (*Env) GetList ¶
GetList returns a list of strings matching the provided key. It handles the list as a JSON representation of a list of strings.
If the given key matches to a single string, it will return a list containing only the value that matches the key.
func (*Env) Map ¶
Map returns the map representation of the env.
Example ¶
e := docker.Env([]string{"A=1", "B=2", "C=3"}) envs := e.Map() for k, v := range envs { fmt.Printf("%s=%q\n", k, v) }
Output:
type Exec ¶ added in v0.5.2
type Exec struct {
ID string `json:"Id,omitempty" yaml:"Id,omitempty"`
}
Exec is the type representing a `docker exec` instance and containing the instance ID
type ExportContainerOptions ¶
ExportContainerOptions is the set of parameters to the ExportContainer method.
See http://goo.gl/hnzE62 for more details.
type ExportImageOptions ¶
ExportImageOptions represent the options for ExportImage Docker API call
See http://goo.gl/mi6kvk for more details.
type HostConfig ¶
type HostConfig struct { Binds []string `json:"Binds,omitempty" yaml:"Binds,omitempty"` CapAdd []string `json:"CapAdd,omitempty" yaml:"CapAdd,omitempty"` CapDrop []string `json:"CapDrop,omitempty" yaml:"CapDrop,omitempty"` ContainerIDFile string `json:"ContainerIDFile,omitempty" yaml:"ContainerIDFile,omitempty"` LxcConf []KeyValuePair `json:"LxcConf,omitempty" yaml:"LxcConf,omitempty"` Privileged bool `json:"Privileged,omitempty" yaml:"Privileged,omitempty"` PortBindings map[Port][]PortBinding `json:"PortBindings,omitempty" yaml:"PortBindings,omitempty"` Links []string `json:"Links,omitempty" yaml:"Links,omitempty"` PublishAllPorts bool `json:"PublishAllPorts,omitempty" yaml:"PublishAllPorts,omitempty"` DNS []string `json:"Dns,omitempty" yaml:"Dns,omitempty"` // For Docker API v1.10 and above only DNSSearch []string `json:"DnsSearch,omitempty" yaml:"DnsSearch,omitempty"` ExtraHosts []string `json:"ExtraHosts,omitempty" yaml:"ExtraHosts,omitempty"` VolumesFrom []string `json:"VolumesFrom,omitempty" yaml:"VolumesFrom,omitempty"` NetworkMode string `json:"NetworkMode,omitempty" yaml:"NetworkMode,omitempty"` RestartPolicy RestartPolicy `json:"RestartPolicy,omitempty" yaml:"RestartPolicy,omitempty"` }
HostConfig contains the container options related to starting a container on a given host
type Image ¶
type Image struct { ID string `json:"Id" yaml:"Id"` Parent string `json:"Parent,omitempty" yaml:"Parent,omitempty"` Comment string `json:"Comment,omitempty" yaml:"Comment,omitempty"` Created time.Time `json:"Created,omitempty" yaml:"Created,omitempty"` Container string `json:"Container,omitempty" yaml:"Container,omitempty"` ContainerConfig Config `json:"ContainerConfig,omitempty" yaml:"ContainerConfig,omitempty"` DockerVersion string `json:"DockerVersion,omitempty" yaml:"DockerVersion,omitempty"` Author string `json:"Author,omitempty" yaml:"Author,omitempty"` Config *Config `json:"Config,omitempty" yaml:"Config,omitempty"` Architecture string `json:"Architecture,omitempty" yaml:"Architecture,omitempty"` Size int64 `json:"Size,omitempty" yaml:"Size,omitempty"` }
Image is the type representing a docker image and its various properties
type ImageHistory ¶ added in v0.5.2
type ImageHistory struct { ID string `json:"Id" yaml:"Id"` Tags []string `json:"Tags,omitempty" yaml:"Tags,omitempty"` Created int64 `json:"Created,omitempty" yaml:"Created,omitempty"` CreatedBy string `json:"CreatedBy,omitempty" yaml:"CreatedBy,omitempty"` Size int64 `json:"Size,omitempty" yaml:"Size,omitempty"` }
ImageHistory represent a layer in an image's history returned by the ImageHistory call.
type ImagePre012 ¶
type ImagePre012 struct { ID string `json:"id"` Parent string `json:"parent,omitempty"` Comment string `json:"comment,omitempty"` Created time.Time `json:"created"` Container string `json:"container,omitempty"` ContainerConfig Config `json:"container_config,omitempty"` DockerVersion string `json:"docker_version,omitempty"` Author string `json:"author,omitempty"` Config *Config `json:"config,omitempty"` Architecture string `json:"architecture,omitempty"` Size int64 `json:"size,omitempty"` }
ImagePre012 serves the same purpose as the Image type except that it is for earlier versions of the Docker API (pre-012 to be specific)
type ImportImageOptions ¶
type ImportImageOptions struct { Repository string `qs:"repo"` Source string `qs:"fromSrc"` Tag string `qs:"tag"` InputStream io.Reader `qs:"-"` OutputStream io.Writer `qs:"-"` }
ImportImageOptions present the set of informations available for importing an image from a source file or the stdin.
See http://goo.gl/PhBKnS for more details.
type KeyValuePair ¶
type KeyValuePair struct { Key string `json:"Key,omitempty" yaml:"Key,omitempty"` Value string `json:"Value,omitempty" yaml:"Value,omitempty"` }
KeyValuePair is a type for generic key/value pairs as used in the Lxc configuration
type KillContainerOptions ¶
type KillContainerOptions struct { // The ID of the container. ID string `qs:"-"` // The signal to send to the container. When omitted, Docker server // will assume SIGKILL. Signal Signal }
KillContainerOptions represents the set of options that can be used in a call to KillContainer.
See http://goo.gl/TFkECx for more details.
type ListContainersOptions ¶
type ListContainersOptions struct { All bool Size bool Limit int Since string Before string Filters map[string][]string }
ListContainersOptions specify parameters to the ListContainers function.
See http://goo.gl/6Y4Gz7 for more details.
type ListImagesOptions ¶ added in v0.7.2
ListImagesOptions specify parameters to the ListImages function.
See http://goo.gl/2rOLFF for more details.
type LoadImageOptions ¶
LoadImageOptions represents the options for LoadImage Docker API Call
See http://goo.gl/Y8NNCq for more details.
type LogsOptions ¶
type LogsOptions struct { Container string `qs:"-"` OutputStream io.Writer `qs:"-"` ErrorStream io.Writer `qs:"-"` Follow bool Stdout bool Stderr bool Timestamps bool Tail string // Use raw terminal? Usually true when the container contains a TTY. RawTerminal bool `qs:"-"` }
LogsOptions represents the set of options used when getting logs from a container.
See http://goo.gl/rLhKSU for more details.
type NetworkSettings ¶
type NetworkSettings struct { IPAddress string `json:"IPAddress,omitempty" yaml:"IPAddress,omitempty"` IPPrefixLen int `json:"IPPrefixLen,omitempty" yaml:"IPPrefixLen,omitempty"` Gateway string `json:"Gateway,omitempty" yaml:"Gateway,omitempty"` Bridge string `json:"Bridge,omitempty" yaml:"Bridge,omitempty"` PortMapping map[string]PortMapping `json:"PortMapping,omitempty" yaml:"PortMapping,omitempty"` Ports map[Port][]PortBinding `json:"Ports,omitempty" yaml:"Ports,omitempty"` }
NetworkSettings contains network-related information about a container
func (*NetworkSettings) PortMappingAPI ¶
func (settings *NetworkSettings) PortMappingAPI() []APIPort
PortMappingAPI translates the port mappings as contained in NetworkSettings into the format in which they would appear when returned by the API
type NoSuchContainer ¶
type NoSuchContainer struct {
ID string
}
NoSuchContainer is the error returned when a given container does not exist.
func (*NoSuchContainer) Error ¶
func (err *NoSuchContainer) Error() string
type NoSuchExec ¶ added in v0.5.2
type NoSuchExec struct {
ID string
}
NoSuchExec is the error returned when a given exec instance does not exist.
func (*NoSuchExec) Error ¶ added in v0.5.2
func (err *NoSuchExec) Error() string
type Port ¶
type Port string
Port represents the port number and the protocol, in the form <number>/<protocol>. For example: 80/tcp.
type PortBinding ¶
type PortBinding struct { HostIP string `json:"HostIP,omitempty" yaml:"HostIP,omitempty"` HostPort string `json:"HostPort,omitempty" yaml:"HostPort,omitempty"` }
PortBinding represents the host/container port mapping as returned in the `docker inspect` json
type PortMapping ¶
PortMapping represents a deprecated field in the `docker inspect` output, and its value as found in NetworkSettings should always be nil
type PullImageOptions ¶
type PullImageOptions struct { Repository string `qs:"fromImage"` Registry string Tag string OutputStream io.Writer `qs:"-"` RawJSONStream bool `qs:"-"` }
PullImageOptions present the set of options available for pulling an image from a registry.
See http://goo.gl/ACyYNS for more details.
type PushImageOptions ¶
type PushImageOptions struct { // Name of the image Name string // Tag of the image Tag string // Registry server to push the image Registry string OutputStream io.Writer `qs:"-"` RawJSONStream bool `qs:"-"` }
PushImageOptions represents options to use in the PushImage method.
See http://goo.gl/pN8A3P for more details.
type RemoveContainerOptions ¶
type RemoveContainerOptions struct { // The ID of the container. ID string `qs:"-"` // A flag that indicates whether Docker should remove the volumes // associated to the container. RemoveVolumes bool `qs:"v"` // A flag that indicates whether Docker should remove the container // even if it is currently running. Force bool }
RemoveContainerOptions encapsulates options to remove a container.
See http://goo.gl/ZB83ji for more details.
type RestartPolicy ¶
type RestartPolicy struct { Name string `json:"Name,omitempty" yaml:"Name,omitempty"` MaximumRetryCount int `json:"MaximumRetryCount,omitempty" yaml:"MaximumRetryCount,omitempty"` }
RestartPolicy represents the policy for automatically restarting a container.
Possible values are:
- always: the docker daemon will always restart the container
- on-failure: the docker daemon will restart the container on failures, at most MaximumRetryCount times
- no: the docker daemon will not restart the container automatically
func AlwaysRestart ¶
func AlwaysRestart() RestartPolicy
AlwaysRestart returns a restart policy that tells the Docker daemon to always restart the container.
func NeverRestart ¶
func NeverRestart() RestartPolicy
NeverRestart returns a restart policy that tells the Docker daemon to never restart the container on failures.
func RestartOnFailure ¶
func RestartOnFailure(maxRetry int) RestartPolicy
RestartOnFailure returns a restart policy that tells the Docker daemon to restart the container on failures, trying at most maxRetry times.
type Signal ¶
type Signal int
Signal represents a signal that can be send to the container on KillContainer call.
type StartExecOptions ¶ added in v0.5.2
type StartExecOptions struct { Detach bool `json:"Detach,omitempty" yaml:"Detach,omitempty"` Tty bool `json:"Tty,omitempty" yaml:"Tty,omitempty"` InputStream io.Reader `qs:"-"` OutputStream io.Writer `qs:"-"` ErrorStream io.Writer `qs:"-"` // Use raw terminal? Usually true when the container contains a TTY. RawTerminal bool `qs:"-"` // If set, after a successful connect, a sentinel will be sent and then the // client will block on receive before continuing. // // It must be an unbuffered channel. Using a buffered channel can lead // to unexpected behavior. Success chan struct{} `json:"-"` }
StartExecOptions specify parameters to the StartExecContainer function.
See http://goo.gl/JW8Lxl for more details
type State ¶
type State struct { Running bool `json:"Running,omitempty" yaml:"Running,omitempty"` Paused bool `json:"Paused,omitempty" yaml:"Paused,omitempty"` OOMKilled bool `json:"OOMKilled,omitempty" yaml:"OOMKilled,omitempty"` Pid int `json:"Pid,omitempty" yaml:"Pid,omitempty"` ExitCode int `json:"ExitCode,omitempty" yaml:"ExitCode,omitempty"` Error string `json:"Error,omitempty" yaml:"Error,omitempty"` StartedAt time.Time `json:"StartedAt,omitempty" yaml:"StartedAt,omitempty"` FinishedAt time.Time `json:"FinishedAt,omitempty" yaml:"FinishedAt,omitempty"` }
State represents the state of a container.
type TagImageOptions ¶
TagImageOptions present the set of options to tag an image.
See http://goo.gl/5g6qFy for more details.
type TopResult ¶ added in v0.5.2
TopResult represents the list of processes running in a container, as returned by /containers/<id>/top.
See http://goo.gl/qu4gse for more details.