moby--moby/client
Aaron Lehmann 6052f2b396 Remove pkg/testutil/assert in favor of testify
I noticed that we're using a homegrown package for assertions. The
functions are extremely similar to testify, but with enough slight
differences to be confusing (for example, Equal takes its arguments in a
different order). We already vendor testify, and it's used in a few
places by tests.

I also found some problems with pkg/testutil/assert. For example, the
NotNil function seems to be broken. It checks the argument against
"nil", which only works for an interface. If you pass in a nil map or
slice, the equality check will fail.

In the interest of avoiding NIH, I'm proposing replacing
pkg/testutil/assert with testify. The test code looks almost the same,
but we avoid the confusion of having two similar but slightly different
assertion packages, and having to maintain our own package instead of
using a commonly-used one.

In the process, I found a few places where the tests should halt if an
assertion fails, so I've made those cases (that I noticed) use "require"
instead of "assert", and I've vendored the "require" package from
testify alongside the already-present "assert" package.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-04-14 12:03:21 -07:00
..
testdata
README.md
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
client.go add missing API changes 2017-02-19 01:33:43 -08:00
client_mock_test.go
client_test.go use an encrypted client certificate to connect to a docker daemon 2017-04-07 01:50:51 -04: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
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
container_top_test.go
container_unpause.go
container_unpause_test.go
container_update.go
container_update_test.go
container_wait.go
container_wait_test.go
disk_usage.go
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
image_create.go Use distribution reference 2017-02-07 11:08:37 -08:00
image_create_test.go
image_history.go
image_history_test.go
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
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 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
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 Use distribution reference 2017-02-07 11:08:37 -08:00
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
secret_update_test.go
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

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.