moby/client
mrfly e345cd12f9 fix client.Transport
`client.Transport` is `http.Client.Transport` just has `RoundTripper()`. Not `http.Transport`. So we cannot convert it here.

For a mock test, I can play with this https://play.golang.org/p/gs7_QrL9-Y

Signed-off-by: wrfly <mr.wrfly@gmail.com>
2017-08-03 17:14:26 +08:00
..
testdata Move engine-api client package 2016-09-07 11:05:58 -07:00
build_prune.go Implement incremental file sync using client session 2017-06-22 11:52:35 -07:00
checkpoint_create.go Move engine-api client package 2016-09-07 11:05:58 -07:00
checkpoint_create_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
checkpoint_delete.go Allow providing a custom storage directory for docker checkpoints 2016-10-28 07:56:05 -04:00
checkpoint_delete_test.go Allow providing a custom storage directory for docker checkpoints 2016-10-28 07:56:05 -04:00
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 fix client.Transport 2017-08-03 17:14:26 +08:00
client_mock_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
client_test.go pull client API version negotiation out of the CLI and into the client 2017-06-20 22:58:16 -07:00
client_unix.go Move engine-api client package 2016-09-07 11:05:58 -07:00
client_windows.go Move engine-api client package 2016-09-07 11:05:58 -07:00
config_create.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_create_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_inspect.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_inspect_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_list.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_list_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_remove.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_remove_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_update.go Add API version checks to client 2017-06-10 01:57:55 +02:00
config_update_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
container_attach.go Add stream format details for attach/logs endpoint 2017-06-02 12:32:25 -04:00
container_commit.go Use distribution reference 2017-02-07 11:08:37 -08:00
container_commit_test.go expected new_container_id while testing ContainerCommit 2016-11-18 10:21:04 +08:00
container_copy.go Merge pull request #33467 from bschwind/copy-documentation 2017-06-24 00:19:51 -07:00
container_copy_test.go Optimize the log info for client test 2016-12-02 03:32:04 +08:00
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 Generate ContainerChanges from swagger spec. 2017-01-03 09:35:40 -05:00
container_diff_test.go Generate ContainerChanges from swagger spec. 2017-01-03 09:35:40 -05:00
container_exec.go always add but hide experimental cmds and flags 2016-11-08 04:55:27 -08:00
container_exec_test.go Add an IDResponse type 2016-10-31 11:16:02 -04:00
container_export.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_export_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_inspect.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_inspect_test.go expected new_container_id while testing ContainerCommit 2016-11-18 10:21:04 +08:00
container_kill.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_kill_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_list.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
container_list_test.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
container_logs.go Add stream format details for attach/logs endpoint 2017-06-02 12:32:25 -04:00
container_logs_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_pause.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_pause_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_prune.go Convert DanglingOnly to Filters for docker image prune 2016-12-02 20:08:49 -08:00
container_prune_test.go Remove pkg/testutil/assert in favor of testify 2017-04-14 12:03:21 -07:00
container_remove.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_remove_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_rename.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_rename_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_resize.go Windows: OCI process struct convergence 2016-09-19 10:34:31 -07:00
container_resize_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_restart.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_restart_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_start.go Allow providing a custom storage directory for docker checkpoints 2016-10-28 07:56:05 -04:00
container_start_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_stats.go Tidy GetDockerOS() function 2016-11-09 14:46:53 -08:00
container_stats_test.go Merge pull request #26436 from stevvooe/remove-transport-package 2016-09-20 16:43:56 +02:00
container_stop.go Move engine-api client package 2016-09-07 11:05:58 -07:00
container_stop_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
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 Move engine-api client package 2016-09-07 11:05:58 -07:00
container_unpause_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
container_update.go Generate container update response from swagger spec. 2016-10-31 11:16:02 -04:00
container_update_test.go Generate container update response from swagger spec. 2016-10-31 11:16:02 -04:00
container_wait.go Spelling fixes 2017-07-03 13:13:09 -07:00
container_wait_test.go Update ContainerWait API 2017-05-16 15:11:39 -07:00
disk_usage.go Add DiskUsage method to SystemApiclient 2016-09-29 07:42:53 -07:00
disk_usage_test.go add disk usage test for client 2017-05-03 12:37:28 +08:00
distribution_inspect.go Add API version checks to client 2017-06-10 01:57:55 +02:00
distribution_inspect_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
errors.go Fix NewVersionError() for clients using default version 2017-06-29 22:22:32 -07:00
events.go Fixes a race condition in client events monitoring 2016-12-16 10:11:53 -05:00
events_test.go Refactor to new events api 2016-09-22 14:42:06 -04:00
hijack.go Fix panic in hijack 2017-07-25 22:46:41 -07:00
image_build.go Add long-running client session endpoint 2017-06-22 11:22:41 -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 client: remove transport package 2016-09-19 11:19:55 -07:00
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 expected new_container_id while testing ContainerCommit 2016-11-18 10:21:04 +08:00
image_inspect.go Move engine-api client package 2016-09-07 11:05:58 -07:00
image_inspect_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
image_list.go Fixes ImageList to be retro-compatible with older API 2016-11-28 22:15:50 +01:00
image_list_test.go Fixes ImageList to be retro-compatible with older API 2016-11-28 22:15:50 +01:00
image_load.go Move engine-api client package 2016-09-07 11:05:58 -07:00
image_load_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
image_prune.go Convert DanglingOnly to Filters for docker image prune 2016-12-02 20:08:49 -08:00
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 Move engine-api client package 2016-09-07 11:05:58 -07:00
image_save_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
image_search.go Move engine-api client package 2016-09-07 11:05:58 -07:00
image_search_test.go api/types/container,client: gofmt 2016-12-05 17:00:36 +02:00
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 Move engine-api client package 2016-09-07 11:05:58 -07:00
info_test.go api: types: keep info.SecurityOptions a string slice 2016-11-19 13:21:16 +01:00
interface.go Implement incremental file sync using client session 2017-06-22 11:52:35 -07:00
interface_experimental.go move plugins out of experimental 2016-11-10 15:51:32 -08:00
interface_stable.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
login.go Fix the inconsistent function name for client 2016-12-02 04:18:02 +08:00
network_connect.go Move engine-api client package 2016-09-07 11:05:58 -07:00
network_connect_test.go add test case check connect.EndpointConfig not nil 2017-02-09 11:26:20 +08:00
network_create.go Move engine-api client package 2016-09-07 11:05:58 -07:00
network_create_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
network_disconnect.go Move engine-api client package 2016-09-07 11:05:58 -07:00
network_disconnect_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
network_inspect.go Add scope filter in /networks/<id> 2017-06-12 09:54:25 -07:00
network_inspect_test.go Add scope filter in /networks/<id> 2017-06-12 09:54:25 -07:00
network_list.go Move engine-api client package 2016-09-07 11:05:58 -07:00
network_list_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
network_prune.go Convert DanglingOnly to Filters for docker image prune 2016-12-02 20:08:49 -08:00
network_prune_test.go Remove pkg/testutil/assert in favor of testify 2017-04-14 12:03:21 -07:00
network_remove.go Move engine-api client package 2016-09-07 11:05:58 -07:00
network_remove_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
node_inspect.go Move engine-api client package 2016-09-07 11:05:58 -07:00
node_inspect_test.go change minor mistake of spelling 2016-12-20 21:05:19 +08:00
node_list.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
node_list_test.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
node_remove.go Move engine-api client package 2016-09-07 11:05:58 -07:00
node_remove_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
node_update.go Move engine-api client package 2016-09-07 11:05:58 -07:00
node_update_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
parse_logs.go Change log details encoding format and support details on service logs 2017-05-12 10:53:44 -07:00
parse_logs_test.go Change log details encoding format and support details on service logs 2017-05-12 10:53:44 -07:00
ping.go Set ping version even on error 2017-06-29 12:42:14 -04:00
ping_test.go Set ping version even on error 2017-06-29 12:42:14 -04: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 Enforce zero plugin refcount during disable. 2016-12-22 13:26:53 -08:00
plugin_disable_test.go Enforce zero plugin refcount during disable. 2016-12-22 13:26:53 -08:00
plugin_enable.go Add HTTP client timeout. 2016-11-21 13:11:40 -08:00
plugin_enable_test.go Add HTTP client timeout. 2016-11-21 13:11:40 -08:00
plugin_inspect.go Merge pull request #28963 from vieux/refactor_plugin_install 2016-12-05 12:00:29 -08:00
plugin_inspect_test.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
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 Implement content addressability for plugins 2016-12-23 13:29:58 -08:00
plugin_push_test.go Implement content addressability for plugins 2016-12-23 13:29:58 -08:00
plugin_remove.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
plugin_remove_test.go expected new_container_id while testing ContainerCommit 2016-11-18 10:21:04 +08:00
plugin_set.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
plugin_set_test.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
plugin_upgrade.go Add API version checks to client 2017-06-10 01:57:55 +02:00
README.md Rename Remote API to Engine API 2016-11-22 12:49:38 +00:00
request.go Set ping version even on error 2017-06-29 12:42:14 -04:00
request_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
secret_create.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_create_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_inspect.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_inspect_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_list.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_list_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_remove.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_remove_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_update.go Add API version checks to client 2017-06-10 01:57:55 +02:00
secret_update_test.go Add API version checks to client 2017-06-10 01:57:55 +02:00
service_create.go Make plugin emit strongly typed, consumable events 2017-07-06 14:26:06 -04:00
service_create_test.go Make plugin emit strongly typed, consumable events 2017-07-06 14:26:06 -04:00
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 Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
service_list_test.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
service_logs.go api: Service Logs support 2016-11-10 13:46:02 -08:00
service_logs_test.go api: Service Logs support 2016-11-10 13:46:02 -08:00
service_remove.go Move engine-api client package 2016-09-07 11:05:58 -07:00
service_remove_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
service_update.go Make plugin emit strongly typed, consumable events 2017-07-06 14:26:06 -04:00
service_update_test.go Return warnings from service create and service update when digest pinning fails 2016-11-18 09:31:31 -08:00
session.go Add long-running client session endpoint 2017-06-22 11:22:41 -07:00
swarm_get_unlock_key.go Revise swarm init/update flags, add unlocking capability 2016-11-09 16:09:00 -08:00
swarm_get_unlock_key_test.go add swarm get unlock key test for client package 2017-05-14 11:09:19 +08:00
swarm_init.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_init_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
swarm_inspect.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_inspect_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
swarm_join.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_join_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
swarm_leave.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_leave_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
swarm_unlock.go why there are so many mistakes in our repo (up to /cmd) 2017-02-17 00:32:48 +08:00
swarm_unlock_test.go add swarm unlock test in client 2017-05-29 00:22:24 +08:00
swarm_update.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_update_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
task_inspect.go Move engine-api client package 2016-09-07 11:05:58 -07:00
task_inspect_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
task_list.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
task_list_test.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
task_logs.go Add support for task and arbitrary combo logs 2017-04-03 18:40:54 -07:00
transport.go Merge pull request #29565 from yuexiao-wang/fix-typo-tls 2016-12-22 12:10:09 +01:00
utils.go Moving docker service digest pinning to client side 2017-05-15 16:42:43 -07:00
version.go Move engine-api client package 2016-09-07 11:05:58 -07:00
volume_create.go Use a config to generate swagger api types 2016-10-31 11:13:41 -04:00
volume_create_test.go Use a config to generate swagger api types 2016-10-31 11:13:41 -04:00
volume_inspect.go Move engine-api client package 2016-09-07 11:05:58 -07:00
volume_inspect_test.go client: remove transport package 2016-09-19 11:19:55 -07:00
volume_list.go Use a config to generate swagger api types 2016-10-31 11:13:41 -04:00
volume_list_test.go Use a config to generate swagger api types 2016-10-31 11:13:41 -04:00
volume_prune.go remove redundant colon introduced by mistake 2017-02-13 10:16:57 +08:00
volume_remove.go always add but hide experimental cmds and flags 2016-11-08 04:55:27 -08:00
volume_remove_test.go client: remove transport package 2016-09-19 11:19:55 -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.