You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform/vendor/github.com/fsouza/go-dockerclient
James Bardin aa75881ed5
Get missing go-dockerclient files
9 years ago
..
external Get missing go-dockerclient files 9 years ago
testing Get missing go-dockerclient files 9 years ago
travis-scripts Get missing go-dockerclient files 9 years ago
AUTHORS downgrade go-dockerclient 9 years ago
DOCKER-LICENSE Vendor all dependencies w/ Godep 10 years ago
LICENSE downgrade go-dockerclient 9 years ago
Makefile downgrade go-dockerclient 9 years ago
README.markdown downgrade go-dockerclient 9 years ago
auth.go downgrade go-dockerclient 9 years ago
cancelable.go downgrade go-dockerclient 9 years ago
cancelable_go14.go downgrade go-dockerclient 9 years ago
change.go downgrade go-dockerclient 9 years ago
client.go downgrade go-dockerclient 9 years ago
container.go downgrade go-dockerclient 9 years ago
env.go Vendor all dependencies w/ Godep 10 years ago
event.go downgrade go-dockerclient 9 years ago
exec.go downgrade go-dockerclient 9 years ago
image.go downgrade go-dockerclient 9 years ago
misc.go downgrade go-dockerclient 9 years ago
network.go downgrade go-dockerclient 9 years ago
signal.go Vendor all dependencies w/ Godep 10 years ago
tar.go downgrade go-dockerclient 9 years ago
tls.go vendor: Nomad 9 years ago
volume.go downgrade go-dockerclient 9 years ago

README.markdown

go-dockerclient

Travis GoDoc

This package presents a client for the Docker remote API. It also provides support for the extensions in the Swarm API. It currently supports the Docker API up to version 1.23.

This package also provides support for docker's network API, which is a simple passthrough to the libnetwork remote API. Note that docker's network API is only available in docker 1.8 and above, and only enabled in docker if DOCKER_EXPERIMENTAL is defined during the docker build process.

For more details, check the remote API documentation.

Vendoring

If you are having issues with Go 1.5 and have GO15VENDOREXPERIMENT set with an application that has go-dockerclient vendored, please update your vendoring of go-dockerclient :) We recently moved the vendor directory to external so that go-dockerclient is compatible with this configuration. See 338 and 339 for details.

Example

package main

import (
	"fmt"

	"github.com/fsouza/go-dockerclient"
)

func main() {
	endpoint := "unix:///var/run/docker.sock"
	client, _ := docker.NewClient(endpoint)
	imgs, _ := client.ListImages(docker.ListImagesOptions{All: false})
	for _, img := range imgs {
		fmt.Println("ID: ", img.ID)
		fmt.Println("RepoTags: ", img.RepoTags)
		fmt.Println("Created: ", img.Created)
		fmt.Println("Size: ", img.Size)
		fmt.Println("VirtualSize: ", img.VirtualSize)
		fmt.Println("ParentId: ", img.ParentID)
	}
}

Using with TLS

In order to instantiate the client for a TLS-enabled daemon, you should use NewTLSClient, passing the endpoint and path for key and certificates as parameters.

package main

import (
	"fmt"

	"github.com/fsouza/go-dockerclient"
)

func main() {
	endpoint := "tcp://[ip]:[port]"
	path := os.Getenv("DOCKER_CERT_PATH")
	ca := fmt.Sprintf("%s/ca.pem", path)
	cert := fmt.Sprintf("%s/cert.pem", path)
	key := fmt.Sprintf("%s/key.pem", path)
	client, _ := docker.NewTLSClient(endpoint, cert, key, ca)
	// use client
}

If using docker-machine, or another application that exports environment variables DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH, you can use NewClientFromEnv.

package main

import (
	"fmt"

	"github.com/fsouza/go-dockerclient"
)

func main() {
	client, _ := docker.NewClientFromEnv()
	// use client
}

See the documentation for more details.

Developing

All development commands can be seen in the Makefile.

Commited code must pass:

Running make test will check all of these. If your editor does not automatically call gofmt, make fmt will format all go files in this repository.