moby/client
Sebastiaan van Stijn 0041e2419a
Fix empty WithVersion blocking version negotiation
commit 3d72963ab8 fixed
situations where a version negotiation could override
the version, even though a client was initialized with a
fixed version.

In situations where the "fixed" version is empty, we
should ignore the option, and treat the client as
"not having a fixed version", so that API version
negotiation can still be performed.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-04-10 11:14:37 +02:00
..
testdata Move engine-api client package 2016-09-07 11:05:58 -07:00
build_cancel.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
build_prune.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
checkpoint_create.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
checkpoint_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
checkpoint_delete.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
checkpoint_delete_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
checkpoint_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
checkpoint_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
client.go client: define "Opt" type 2019-04-10 01:23:45 +02:00
client_deprecated.go Move deprecated client constructors to a separate file 2019-01-21 15:27:52 +01:00
client_mock_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
client_test.go Fix empty WithVersion blocking version negotiation 2019-04-10 11:14:37 +02:00
client_unix.go Introduce NewClientWithOpts func to build custom client easily 2018-02-08 15:26:24 +01:00
client_windows.go Introduce NewClientWithOpts func to build custom client easily 2018-02-08 15:26:24 +01:00
config_create.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
config_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
config_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
config_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
config_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
config_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
config_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
config_remove_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
config_update.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
config_update_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_attach.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_commit.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_commit_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_copy.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_copy_test.go Use errdefs for handling errors in client 2019-03-16 00:42:42 +01:00
container_create.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_diff.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_diff_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_exec.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_exec_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_export.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_export_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_kill.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_kill_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_logs.go Improve GetTimestamp parsing 2018-05-20 13:07:17 +02:00
container_logs_test.go Remove use of deprecated client.NewEnvClient() 2019-01-03 22:49:00 +01:00
container_pause.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_pause_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_prune.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_prune_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
container_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_remove_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
container_rename.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_rename_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_resize.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_resize_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_restart.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_restart_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_start.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_start_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_stats.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_stats_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_stop.go Merge pull request #36874 from kolyshkin/stop-timeout 2018-05-30 13:38:42 -04:00
container_stop_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_top.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_top_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_unpause.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_unpause_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_update.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
container_update_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
container_wait.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
container_wait_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
disk_usage.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
disk_usage_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
distribution_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
distribution_inspect_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
errors.go Keep old "notfound" interface for backward compatibility 2019-03-16 00:42:36 +01:00
events.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
events_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
hijack.go api: add undocumented /grpc endpoint to talk to GRPC services 2019-04-02 19:57:59 +00:00
hijack_test.go Remove use of deprecated client.NewClient() 2019-01-28 17:08:54 +01:00
image_build.go builder-next: allow outputs configuration 2019-03-19 10:28:30 -07:00
image_build_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_create.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
image_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_history.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
image_history_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_import.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
image_import_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
image_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
image_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_load.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
image_load_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_prune.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
image_prune_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
image_pull.go Use errdefs for handling errors in client 2019-03-16 00:42:42 +01:00
image_pull_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_push.go Use errdefs for handling errors in client 2019-03-16 00:42:42 +01:00
image_push_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
image_remove_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
image_save.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
image_save_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_search.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
image_search_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
image_tag.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
image_tag_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
info.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
info_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
interface.go api: add undocumented /grpc endpoint to talk to GRPC services 2019-04-02 19:57:59 +00:00
interface_experimental.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
interface_stable.go Add canonical import comment 2018-02-05 16:51:57 -05:00
login.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
network_connect.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
network_connect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
network_create.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
network_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
network_disconnect.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
network_disconnect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
network_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
network_inspect_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
network_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
network_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
network_prune.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
network_prune_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
network_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
network_remove_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
node_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
node_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
node_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
node_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
node_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
node_remove_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
node_update.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
node_update_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
options.go Fix empty WithVersion blocking version negotiation 2019-04-10 11:14:37 +02:00
ping.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
ping_test.go Add HEAD support for /_ping endpoint 2019-01-31 18:18:24 +01:00
plugin_create.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
plugin_disable.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
plugin_disable_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
plugin_enable.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
plugin_enable_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
plugin_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
plugin_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
plugin_install.go Use errdefs for handling errors in client 2019-03-16 00:42:42 +01:00
plugin_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
plugin_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
plugin_push.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
plugin_push_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
plugin_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
plugin_remove_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
plugin_set.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
plugin_set_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
plugin_upgrade.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
README.md Remove use of deprecated client.NewEnvClient() 2019-01-03 22:49:00 +01:00
request.go Move httputils error helpers to errdefs package 2019-03-16 00:42:23 +01:00
request_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
secret_create.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
secret_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
secret_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
secret_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
secret_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
secret_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
secret_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
secret_remove_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
secret_update.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
secret_update_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
service_create.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
service_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
service_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
service_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
service_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
service_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
service_logs.go Improve GetTimestamp parsing 2018-05-20 13:07:17 +02:00
service_logs_test.go Remove use of deprecated client.NewEnvClient() 2019-01-03 22:49:00 +01:00
service_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
service_remove_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
service_update.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
service_update_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
swarm_get_unlock_key.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
swarm_get_unlock_key_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
swarm_init.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
swarm_init_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
swarm_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
swarm_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
swarm_join.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
swarm_join_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
swarm_leave.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
swarm_leave_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
swarm_unlock.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
swarm_unlock_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
swarm_update.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
swarm_update_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
task_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
task_inspect_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
task_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
task_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
task_logs.go Switch from x/net/context -> context 2018-04-23 13:52:44 -07:00
transport.go Add canonical import comment 2018-02-05 16:51:57 -05:00
utils.go Add canonical import comment 2018-02-05 16:51:57 -05:00
version.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
volume_create.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
volume_create_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
volume_inspect.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
volume_inspect_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
volume_list.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
volume_list_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01:00
volume_prune.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
volume_remove.go Client: always call ensureReaderClosed 2019-03-18 15:26:21 +01:00
volume_remove_test.go Update tests to check returned errors 2019-03-16 00:40:55 +01: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.NewClientWithOpts(client.FromEnv)
	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.