moby--moby/client
Yong Tang 158b2a1875 Add `scope` filter in `/networks/<id>`
This fix tries to add a `scope` in the query of `/networks/<id>`
(`NetworkInspect`) so that in case of duplicate network names,
it is possible to locate the network ID based on the network
scope (`local`, 'swarm', or `global`).

Multiple networks might exist in different scopes, which is a legitimate case.
For example, a network name `foo` might exists locally and in swarm network.

However, before this PR it was not possible to query a network name `foo`
in a specific scope like swarm.

This fix fixes the issue by allowing a `scope` query in `/networks/<id>`.

Additional test cases have been added to unit tests and integration tests.

This fix is related to docker/cli#167, moby/moby#30897, moby/moby#33561, moby/moby#30242

This fix fixes docker/cli#167

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2017-06-12 09:54:25 -07:00
..
testdata
README.md
checkpoint_create.go
checkpoint_create_test.go
checkpoint_delete.go
checkpoint_delete_test.go
checkpoint_list.go
checkpoint_list_test.go
client.go client: Use string concatenation instead of Sprintf 2017-06-02 14:01:57 +02: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
config_create.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_create_test.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_inspect.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_inspect_test.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_list.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_list_test.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_remove.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_remove_test.go Add configs support to client 2017-05-11 10:08:21 -07:00
config_update.go fix typos in function comments 2017-05-14 13:05:41 +08:00
config_update_test.go Add configs support to client 2017-05-11 10:08:21 -07:00
container_attach.go
container_commit.go
container_commit_test.go
container_copy.go client: Use string concatenation instead of Sprintf 2017-06-02 14:01:57 +02:00
container_copy_test.go
container_create.go
container_create_test.go
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
container_top_test.go
container_unpause.go
container_unpause_test.go
container_update.go
container_update_test.go
container_wait.go Fix Typos: continer,contianer -> container 2017-06-01 19:21:01 +08:00
container_wait_test.go Update ContainerWait API 2017-05-16 15:11:39 -07:00
disk_usage.go
disk_usage_test.go add disk usage test for client 2017-05-03 12:37:28 +08:00
distribution_inspect.go Moving docker service digest pinning to client side 2017-05-15 16:42:43 -07:00
errors.go Add configs support to client 2017-05-11 10:08:21 -07:00
events.go
events_test.go
hijack.go Add a error check in postHijacked to avoid docker exec command blocking. 2017-06-08 15:46:50 +08:00
image_build.go builder: add an option for specifying build target 2017-04-10 16:21:43 -07:00
image_build_test.go
image_create.go
image_create_test.go
image_history.go
image_history_test.go
image_import.go
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
image_pull_test.go
image_push.go
image_push_test.go
image_remove.go
image_remove_test.go
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 Add `scope` filter in `/networks/<id>` 2017-06-12 09:54:25 -07:00
interface_experimental.go
interface_stable.go
login.go
network_connect.go
network_connect_test.go
network_create.go
network_create_test.go
network_disconnect.go
network_disconnect_test.go
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
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
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 client: Use string concatenation instead of Sprintf 2017-06-02 14:01:57 +02:00
plugin_create.go
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
plugin_list_test.go
plugin_push.go
plugin_push_test.go
plugin_remove.go
plugin_remove_test.go
plugin_set.go
plugin_set_test.go
plugin_upgrade.go client: Use string concatenation instead of Sprintf 2017-06-02 14:01:57 +02:00
request.go
request_test.go
secret_create.go
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 fix typos in function comments 2017-05-14 13:05:41 +08:00
secret_update_test.go
service_create.go Ensure service images get default tag and print familiar strings 2017-05-19 10:35:34 -07:00
service_create_test.go Adding unit tests for pin by digest (client) 2017-05-19 10:48:12 -07: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
service_list_test.go
service_logs.go
service_logs_test.go
service_remove.go
service_remove_test.go
service_update.go Ensure service images get default tag and print familiar strings 2017-05-19 10:35:34 -07:00
service_update_test.go
swarm_get_unlock_key.go
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
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
swarm_unlock_test.go add swarm unlock test in client 2017-05-29 00:22:24 +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 Moving docker service digest pinning to client side 2017-05-15 16:42:43 -07:00
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
volume_remove.go
volume_remove_test.go

README.md

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.