moby/client
Nick Adcock 239ac23799
Improve readability of Windows connect error
Improve the readability of the connection error displayed to the user on
Windows when running docker commands fails by checking if the client is
privileged. If so then display the actual error wrapped in a generic
error "This error may indicate that the docker daemon is not running."

If not that display the actual error wrapped in a more specific error:
"In the default daemon configuration on Windows, the docker client must
be run with elevated privileges to connect."

Signed-off-by: Nick Adcock <nick.adcock@docker.com>
(cherry picked from commit 1a5dafb31e)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-06 23:09:33 +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 Add client.WithAPIVersionNegotiation() option 2019-04-10 19:23:47 +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 Add client.WithAPIVersionNegotiation() option 2019-04-10 19:23:47 +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 Add client.WithAPIVersionNegotiation() option 2019-04-10 19:23:47 +02: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 Merge pull request #39032 from thaJeztah/improve_version_negotiation 2019-04-20 13:34:22 +02:00
options_test.go Add client.WithTimeout() option 2019-04-11 13:35:48 +02:00
ping.go client: do not fallback to GET if HEAD on _ping fail to connect 2019-05-13 15:17:51 -07: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 Improve readability of Windows connect error 2019-09-06 23:09:33 +02: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.