Files
docker-cli/components/engine/client
Boaz Shuster 9d2b3f6463 Return error on client redirect
From Go 1.8 HTTP client redirect behaviour is changed:
When status code is 301, 307 or 308, the client
automatically converts it to a new HTTP request.

This behaviour change manifests in the client in that
before the 301 was not followed and the client did not generate
an error, but now results in an error message:
"Error response from daemon: page not found."

To fix that a new redirect policy is forced by setting
HTTP Client's CheckRedirect.
That policy is to return an error for any 301, 307 or 308
in the response's status code to a non-GET request.
The error message specifies that the daemon could not
process the request and it is probably due to bad
arguments that were provided by the user.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
Upstream-commit: eb36d6021618f788012c166a533f1b321cda9695
Component: engine
2017-05-11 15:39:41 +03:00
..
2016-09-07 11:05:58 -07:00
2017-05-11 15:39:41 +03:00
2016-09-07 11:05:58 -07:00
2017-05-11 15:39:41 +03:00
2017-02-07 11:08:37 -08:00
2016-10-31 11:16:02 -04:00
2016-11-09 14:46:53 -08:00
2016-09-22 14:42:06 -04:00
2016-10-31 17:36:49 -04:00
2017-02-07 11:08:37 -08:00
2017-02-07 11:08:37 -08:00
2016-09-07 11:05:58 -07:00
2017-02-07 11:08:37 -08:00
2017-02-07 11:08:37 -08:00
2017-02-07 11:08:37 -08:00
2017-02-07 11:08:37 -08:00
2016-09-07 11:05:58 -07:00
2016-09-07 11:05:58 -07:00
2016-09-07 11:05:58 -07:00
2016-09-07 11:05:58 -07:00
2016-09-07 11:05:58 -07:00
2016-09-07 11:05:58 -07:00
2016-09-07 11:05:58 -07:00
2016-11-21 13:11:40 -08:00
2016-11-21 13:11:40 -08:00
2016-10-24 15:20:01 -07:00
2017-02-07 11:08:37 -08:00
2016-11-22 12:49:38 +00:00
2016-11-09 14:27:45 -05:00
2016-11-09 14:27:45 -05:00
2016-11-10 13:46:02 -08:00
2016-11-10 13:46:02 -08:00
2016-12-20 22:08:07 +08:00
2016-12-20 22:08:07 +08:00
2016-12-20 22:08:07 +08:00
2016-12-20 22:08:07 +08:00
2016-12-20 22:08:07 +08:00
2016-09-07 11:05:58 -07:00
2016-09-07 11:05:58 -07:00

Go client for the Docker Engine 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 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)
	}
}

Full documentation is available on GoDoc.