1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/client
Boaz Shuster eb36d60216 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>
2017-05-11 15:39:41 +03:00
..
testdata
checkpoint_create.go
checkpoint_create_test.go
checkpoint_delete.go
checkpoint_delete_test.go
checkpoint_list.go update incorrect comments of CheckpointList 2017-02-04 00:41:35 +08:00
checkpoint_list_test.go more descriptive error fo checkpoint ls for non existent containers 2017-02-02 00:42:29 +02:00
client.go Return error on client redirect 2017-05-11 15:39:41 +03:00
client_mock_test.go
client_test.go Return error on client redirect 2017-05-11 15:39:41 +03:00
client_unix.go
client_windows.go
container_attach.go
container_commit.go Use distribution reference 2017-02-07 11:08:37 -08:00
container_commit_test.go
container_copy.go daemon/archive.go: Fix copy routines to preserve UID. 2017-04-12 10:33:19 +00:00
container_copy_test.go
container_create.go Don't use AutoRemove on older daemons 2017-01-15 01:59:57 +01:00
container_create_test.go why there are so many mistakes in our repo (up to /cmd) 2017-02-17 00:32:48 +08:00
container_diff.go
container_diff_test.go
container_exec.go
container_exec_test.go
container_export.go
container_export_test.go
container_inspect.go
container_inspect_test.go
container_kill.go
container_kill_test.go
container_list.go
container_list_test.go
container_logs.go
container_logs_test.go
container_pause.go
container_pause_test.go
container_prune.go
container_prune_test.go Remove pkg/testutil/assert in favor of testify 2017-04-14 12:03:21 -07:00
container_remove.go
container_remove_test.go
container_rename.go
container_rename_test.go
container_resize.go
container_resize_test.go
container_restart.go
container_restart_test.go
container_start.go
container_start_test.go
container_stats.go
container_stats_test.go
container_stop.go
container_stop_test.go
container_top.go Convert ContainerTopOKResponse from swagger spec. 2017-01-03 11:47:47 -05:00
container_top_test.go Convert ContainerTopOKResponse from swagger spec. 2017-01-03 11:47:47 -05:00
container_unpause.go
container_unpause_test.go
container_update.go
container_update_test.go
container_wait.go
container_wait_test.go
disk_usage.go
disk_usage_test.go add disk usage test for client 2017-05-03 12:37:28 +08:00
errors.go print error if unsupported flags are used 2017-02-03 16:59:20 -08:00
events.go
events_test.go
hijack.go
image_build.go builder: add an option for specifying build target 2017-04-10 16:21:43 -07:00
image_build_test.go Update docs and code to use application/x-tar in the build API 2017-01-10 06:40:06 +02:00
image_create.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_create_test.go
image_history.go Generate ImageHistory from swagger spec. 2017-01-03 11:47:44 -05:00
image_history_test.go Generate ImageHistory from swagger spec. 2017-01-03 11:47:44 -05:00
image_import.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_import_test.go
image_inspect.go
image_inspect_test.go
image_list.go
image_list_test.go
image_load.go
image_load_test.go
image_prune.go
image_prune_test.go Remove pkg/testutil/assert in favor of testify 2017-04-14 12:03:21 -07:00
image_pull.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_pull_test.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_push.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_push_test.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_remove.go Generate ImageDeleteResponse from swagger spec. 2017-01-03 11:47:47 -05:00
image_remove_test.go Generate ImageDeleteResponse from swagger spec. 2017-01-03 11:47:47 -05:00
image_save.go
image_save_test.go
image_search.go
image_search_test.go
image_tag.go client: Allow hex strings as source references for ImageTag 2017-04-11 13:37:04 -07:00
image_tag_test.go client: Allow hex strings as source references for ImageTag 2017-04-11 13:37:04 -07:00
info.go
info_test.go
interface.go Change "service inspect" to show defaults in place of empty fields 2017-04-10 13:41:16 -07:00
interface_experimental.go
interface_stable.go
login.go
network_connect.go
network_connect_test.go add test case check connect.EndpointConfig not nil 2017-02-09 11:26:20 +08:00
network_create.go
network_create_test.go
network_disconnect.go
network_disconnect_test.go
network_inspect.go Enhance network inspect to show all tasks, local & non-local, in swarm mode 2017-03-13 17:52:08 -07:00
network_inspect_test.go Enhance network inspect to show all tasks, local & non-local, in swarm mode 2017-03-13 17:52:08 -07:00
network_list.go
network_list_test.go
network_prune.go
network_prune_test.go Remove pkg/testutil/assert in favor of testify 2017-04-14 12:03:21 -07:00
network_remove.go
network_remove_test.go
node_inspect.go
node_inspect_test.go
node_list.go
node_list_test.go
node_remove.go
node_remove_test.go
node_update.go
node_update_test.go
ping.go Hide command options that are related to Windows 2017-03-12 08:47:17 +02:00
plugin_create.go Update docs and code to use application/x-tar in the build API 2017-01-10 06:40:06 +02:00
plugin_disable.go
plugin_disable_test.go
plugin_enable.go
plugin_enable_test.go
plugin_inspect.go
plugin_inspect_test.go
plugin_install.go Net dial to the plugin socket during enable. 2017-02-27 18:11:28 -08:00
plugin_list.go Add --filter enabled=true for docker plugin ls 2017-01-26 13:16:11 -08:00
plugin_list_test.go Add capability filter to docker plugin ls 2017-01-27 07:32:22 -08:00
plugin_push.go
plugin_push_test.go
plugin_remove.go
plugin_remove_test.go
plugin_set.go
plugin_set_test.go
plugin_upgrade.go Use distribution reference 2017-02-07 11:08:37 -08:00
README.md
request.go
request_test.go
secret_create.go remove unused headers in secret_create.go 2017-02-11 00:16:48 +08:00
secret_create_test.go
secret_inspect.go
secret_inspect_test.go
secret_list.go
secret_list_test.go
secret_remove.go
secret_remove_test.go
secret_update.go Add integration test for stack deploy with secrets. 2017-01-26 11:33:15 -05:00
secret_update_test.go Add SecretUpdate method to client 2017-01-13 09:51:05 -08:00
service_create.go
service_create_test.go
service_inspect.go Change "service inspect" to show defaults in place of empty fields 2017-04-10 13:41:16 -07:00
service_inspect_test.go Change "service inspect" to show defaults in place of empty fields 2017-04-10 13:41:16 -07:00
service_list.go
service_list_test.go
service_logs.go
service_logs_test.go
service_remove.go
service_remove_test.go
service_update.go Implement server-side rollback, for daemon versions that support this 2017-03-03 16:33:34 -08:00
service_update_test.go
swarm_get_unlock_key.go
swarm_init.go
swarm_init_test.go
swarm_inspect.go
swarm_inspect_test.go
swarm_join.go
swarm_join_test.go
swarm_leave.go
swarm_leave_test.go
swarm_unlock.go why there are so many mistakes in our repo (up to /cmd) 2017-02-17 00:32:48 +08:00
swarm_update.go
swarm_update_test.go
task_inspect.go
task_inspect_test.go
task_list.go
task_list_test.go
task_logs.go Add support for task and arbitrary combo logs 2017-04-03 18:40:54 -07:00
transport.go
utils.go
version.go
volume_create.go
volume_create_test.go
volume_inspect.go
volume_inspect_test.go
volume_list.go
volume_list_test.go
volume_prune.go remove redundant colon introduced by mistake 2017-02-13 10:16:57 +08:00
volume_remove.go
volume_remove_test.go

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.