![]() The original contents of `vendor` were inadvertently captured with an older version of `godep`. Here, we recapture dependencies by running the following: ``` godep restore -v cat Godeps/Godeps.json | jq -r '.Deps[].ImportPath' | xargs godep update -v ``` The newer godep makes the following changes as it captures dependencies: * Skips test files * Copies `LICENSE` / `PATENTS` files There is also an additional diff in `golang.org/x/sys/unix` that looks very similar to the diff between `master..c65f27f` in that repo, so I'm guessing that dependency was accidentally captured from master instead of the commit saved to `Godeps.json`. All in all, these changes should all be "more correct" and result in smaller diffs for any future updates made to dependencies. |
||
---|---|---|
.. | ||
external | ||
testing | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
DOCKER-LICENSE | ||
LICENSE | ||
Makefile | ||
README.markdown | ||
auth.go | ||
change.go | ||
client.go | ||
container.go | ||
env.go | ||
event.go | ||
exec.go | ||
image.go | ||
misc.go | ||
network.go | ||
signal.go | ||
tar.go | ||
tls.go | ||
volume.go |
README.markdown
go-dockerclient
This package presents a client for the Docker remote API. It also provides support for the extensions in the Swarm API.
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.