From a41ec7d802267adedcdd1cdca49c6911d3739c4f Mon Sep 17 00:00:00 2001 From: Ben Firshman Date: Sat, 8 Oct 2016 14:34:37 +0100 Subject: [PATCH] Add GoDoc for client package - Tightened up copy in README - Make example in README a bit simpler - Update README to point at GoDoc Signed-off-by: Ben Firshman --- README.md | 24 +++++++++++------------- client.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 34cf7372db..2b7d81fada 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,35 @@ -## Client +## Go client for the Docker Remote API -The client package implements a fully featured http client to interact with the Docker engine. It's modeled after the requirements of the Docker engine CLI, but it can also serve other purposes. +The `docker` command uses this package to communicate with the daemon. It can also be used by your own Go applications to do anything the command-line interface does – running containers, pulling images, managing swarms, etc. -### Usage - -You can use this client package in your applications by creating a new client object. Then use that object to execute operations against the remote server. Follow the example below to see how to list all the containers running in a Docker engine host: +For example, to list running containers (the equivalent of `docker ps`): ```go package main import ( - "fmt" "context" + "fmt" - "github.com/docker/docker/client" "github.com/docker/docker/api/types" + "github.com/docker/docker/client" ) func main() { - defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"} - cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.22", nil, defaultHeaders) + cli, err := client.NewEnvClient() if err != nil { panic(err) } - options := types.ContainerListOptions{All: true} - containers, err := cli.ContainerList(context.Background(), options) + containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) if err != nil { panic(err) } - for _, c := range containers { - fmt.Println(c.ID) + for _, container := range containers { + fmt.Printf("%s %s\n", container.ID[:10], container.Image) } } ``` + +[Full documentation is available on GoDoc.](https://godoc.org/github.com/docker/docker/client) diff --git a/client.go b/client.go index deccb4ab74..58e8430cf2 100644 --- a/client.go +++ b/client.go @@ -1,3 +1,48 @@ +/* +Package client is a Go client for the Docker Remote API. + +The "docker" command uses this package to communicate with the daemon. It can also +be used by your own Go applications to do anything the command-line interface does +– running containers, pulling images, managing swarms, etc. + +For more information about the Remote API, see the documentation: +https://docs.docker.com/engine/reference/api/docker_remote_api/ + +Usage + +You use the library by creating a client object and calling methods on it. The +client can be created either from environment variables with NewEnvClient, or +configured manually with NewClient. + +For example, to list running containers (the equivalent of "docker ps"): + + package main + + import ( + "context" + "fmt" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/client" + ) + + func main() { + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } + + containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) + if err != nil { + panic(err) + } + + for _, container := range containers { + fmt.Printf("%s %s\n", container.ID[:10], container.Image) + } + } + +*/ package client import (