Documentation
¶
Overview ¶
Package docker provides a client for the Docker remote API.
See http://goo.gl/mxyql for more details on the remote API.
Index ¶
- Variables
- type APIContainers
- type APIImages
- type APIInfo
- type APIPort
- type AttachToContainerOptions
- type AuthConfiguration
- type Client
- func (c *Client) CommitContainer(opts CommitContainerOptions) (*Image, error)
- func (c *Client) CopyFromContainer(opts CopyFromContainerOptions) error
- func (c *Client) CreateContainer(opts CreateContainerOptions, config *Config) (*Container, error)
- func (c *Client) ExportContainer(id string, out io.Writer) error
- func (c *Client) ImportImage(opts ImportImageOptions, in io.Reader, out io.Writer) error
- func (c *Client) Info() (*APIInfo, error)
- func (c *Client) InspectContainer(id string) (*Container, error)
- func (c *Client) InspectImage(name string) (*Image, error)
- func (c *Client) KillContainer(id string) error
- func (c *Client) ListContainers(opts ListContainersOptions) ([]APIContainers, error)
- func (c *Client) ListImages(all bool) ([]APIImages, error)
- func (c *Client) PullImage(opts PullImageOptions, w io.Writer) error
- func (c *Client) PushImage(opts PushImageOptions, auth AuthConfiguration, w io.Writer) error
- func (c *Client) RemoveContainer(id string) error
- func (c *Client) RemoveImage(name string) error
- func (c *Client) RestartContainer(id string, timeout uint) error
- func (c *Client) StartContainer(id string, hostConfig *HostConfig) error
- func (c *Client) StopContainer(id string, timeout uint) error
- func (c *Client) WaitContainer(id string) (int, error)
- type CommitContainerOptions
- type Config
- type Container
- type CopyFromContainerOptions
- type CreateContainerOptions
- type Error
- type HostConfig
- type Image
- type ImportImageOptions
- type KeyValuePair
- type ListContainersOptions
- type NetworkSettings
- type NoSuchContainer
- type Port
- type PortBinding
- type PortMapping
- type PullImageOptions
- type PushImageOptions
- type State
Examples ¶
Constants ¶
This section is empty.
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 ErrNoSuchImage = errors.New("No such image")
Error returned when the image does not exist.
Functions ¶
This section is empty.
Types ¶
type APIContainers ¶
type APIContainers struct {
ID string `json:"Id"`
Image string
Command string
Created int64
Status string
Ports []APIPort
SizeRw int64
SizeRootFs int64
Names []string
}
---------------------------------------------------------------------------------------------------------- FROM api_params.go
type APIImages ¶
type APIImages struct {
ID string `json:"Id"`
RepoTags []string `json:",omitempty"`
Created int64
Size int64
VirtualSize int64
ParentId string `json:",omitempty"`
}
---------------------------------------------------------------------------------------------------------- FROM api_params.go
type APIInfo ¶
type APIInfo struct {
Debug bool
Containers int
Images int
Driver string `json:",omitempty"`
DriverStatus [][2]string `json:",omitempty"`
NFd int `json:",omitempty"`
NGoroutines int `json:",omitempty"`
MemoryLimit bool `json:",omitempty"`
SwapLimit bool `json:",omitempty"`
IPv4Forwarding bool `json:",omitempty"`
LXCVersion string `json:",omitempty"`
NEventsListener int `json:",omitempty"`
KernelVersion string `json:",omitempty"`
IndexServerAddress string `json:",omitempty"`
}
---------------------------------------------------------------------------------------------------------- FROM api_params.go
type APIPort ¶
---------------------------------------------------------------------------------------------------------- FROM api_params.go
type AttachToContainerOptions ¶
type AttachToContainerOptions struct {
Container string
InputFile *os.File
OutputStream io.Writer
ErrorStream io.Writer
RawTerminal bool
// Get container logs, sending it to OutputStream.
Logs bool
// Stream the response?
Stream bool
// Attach to stdin, and use InputFile.
Stdin bool
// Attach to stdout, and use OutputStream.
Stdout bool
// Attach to stderr, and use ErrorStream.
Stderr bool
}
AttachToContainerOptions is the set of options that can be used when attaching to a container.
See http://goo.gl/oPzcqH for more details.
type AuthConfiguration ¶
type AuthConfiguration struct {
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Email string `json:"email,omitempty"`
}
AuthConfiguration represents authentication options to use in the PushImage method. It represents the authencation in the Docker index server.
type Client ¶
type Client struct {
// 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.
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/628gxm 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/mnxRMl for more details.
Example ¶
client, err := docker.NewClient("http://localhost:4243")
if err != nil {
log.Fatal(err)
}
cid := "a84849"
// Copy resulting file
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())
func (*Client) CreateContainer ¶
func (c *Client) CreateContainer(opts CreateContainerOptions, config *Config) (*Container, error)
CreateContainer creates a new container, returning the container instance, or an error in case of failure.
See http://goo.gl/tjihUc for more details.
func (*Client) ExportContainer ¶
ExportContainer export the contents of container id as tar archive and prints the exported contents to stdout.
see http://goo.gl/Lqk0FZ for more details.
func (*Client) ImportImage ¶
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, like the number of running containers.
See http://goo.gl/LOmySw for more details.
func (*Client) InspectContainer ¶
InspectContainer returns information about a container by its ID.
See http://goo.gl/2o52Sx for more details.
func (*Client) InspectImage ¶
InspectImage returns an image by its name or ID.
See http://goo.gl/pHEbma for more details.
func (*Client) KillContainer ¶
KillContainer kills a container, returning an error in case of failure.
See http://goo.gl/DPbbBy 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/QpCnDN for more details.
func (*Client) ListImages ¶
ListImages returns the list of available images in the server.
See http://goo.gl/dkMrwP for more details.
func (*Client) PullImage ¶
func (c *Client) PullImage(opts PullImageOptions, w io.Writer) error
PullImage pulls an image from a remote registry, logging progress to w.
See http://goo.gl/PhBKnS for more details.
func (*Client) PushImage ¶
func (c *Client) PushImage(opts PushImageOptions, auth AuthConfiguration, w io.Writer) 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/GBmyhc for more details.
func (*Client) RemoveContainer ¶
RemoveContainer removes a container, returning an error in case of failure.
See http://goo.gl/PBvGdU for more details.
func (*Client) RemoveImage ¶
RemoveImage removes an image by its name or ID.
See http://goo.gl/7hjHHy 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/zms73Z for more details.
func (*Client) StartContainer ¶
func (c *Client) StartContainer(id string, hostConfig *HostConfig) error
StartContainer starts a container, returning an errror in case of failure.
See http://goo.gl/y5GZlE for more details.
func (*Client) StopContainer ¶
StopContainer stops a container, killing it after the given timeout (in seconds).
See http://goo.gl/X2mj8t 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/gnHJL2 for more details.
type CommitContainerOptions ¶
type CommitContainerOptions struct {
Container string
Repository string `qs:"repo"`
Tag string
Message string `qs:"m"`
Author string
Run *Config
}
CommitContainerOptions aggregates parameters to the CommitContainer method.
See http://goo.gl/628gxm for more details.
type Config ¶
type Config struct {
Hostname string
Domainname string
User string
Memory int64 // Memory limit (in bytes)
MemorySwap int64 // Total memory usage (memory + swap); set `-1' to disable swap
AttachStdin bool
AttachStdout bool
AttachStderr bool
PortSpecs []string // Deprecated - Can be in the format of 8080/tcp
ExposedPorts map[Port]struct{}
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
Cmd []string
Dns []string
Image string // Name of the image as it was passed by the operator (eg. could be symbolic)
Volumes map[string]struct{}
VolumesFrom string
WorkingDir string
Entrypoint []string
NetworkDisabled bool
}
Note: the Config structure 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.
type Container ¶
type Container struct {
ID string
Created time.Time
Path string
Args []string
Config *Config
State State
Image string
NetworkSettings *NetworkSettings
SysInitPath string
ResolvConfPath string
HostnamePath string
HostsPath string
Name string
Driver string
Volumes map[string]string
// Store rw/ro in a separate structure to preserve reverse-compatibility on-disk.
// Easier than migrating older container configs :)
VolumesRW map[string]bool
}
---------------------------------------------------------------------------------------------------------- FROM container.go
type CopyFromContainerOptions ¶
CopyFromContainerOptions is the set of options that can be used when copying files or folders from a container.
See http://goo.gl/mnxRMl for more details.
type CreateContainerOptions ¶
type CreateContainerOptions struct {
Name string
}
CreateContainerOptions specify parameters to the CreateContainer function.
See http://goo.gl/WPPYtB for more details.
type HostConfig ¶
type HostConfig struct {
Binds []string
ContainerIDFile string
LxcConf []KeyValuePair
Privileged bool
PortBindings map[Port][]PortBinding
Links []string
PublishAllPorts bool
}
---------------------------------------------------------------------------------------------------------- FROM container.go
type Image ¶
type Image 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
}
---------------------------------------------------------------------------------------------------------- FROM image.go
type ImportImageOptions ¶
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 ¶
---------------------------------------------------------------------------------------------------------- FROM container.go
type ListContainersOptions ¶
ListContainersOptions specify parameters to the ListContainers function.
See http://goo.gl/QpCnDN for more details.
type NetworkSettings ¶
type NetworkSettings struct {
IPAddress string
IPPrefixLen int
Gateway string
Bridge string
PortMapping map[string]PortMapping // Deprecated
Ports map[Port][]PortBinding
}
---------------------------------------------------------------------------------------------------------- FROM container.go
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 PortBinding ¶
---------------------------------------------------------------------------------------------------------- FROM container.go
type PortMapping ¶
---------------------------------------------------------------------------------------------------------- FROM container.go
type PullImageOptions ¶
PullImageOptions present the set of options available for pulling an image from a registry.
See http://goo.gl/PhBKnS for more details.
type PushImageOptions ¶
type PushImageOptions struct {
// Name of the image
Name string
// Registry server to push the image
Registry string
}
PushImageOptions represents options to use in the PushImage method.
See http://goo.gl/GBmyhc for more details.


