1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/client
Tonis Tiigi 3d86b0c79b Implement content addressability for plugins
Move plugins to shared distribution stack with images.

Create immutable plugin config that matches schema2 requirements.

Ensure data being pushed is same as pulled/created.

Store distribution artifacts in a blobstore.

Run init layer setup for every plugin start.

Fix breakouts from unsafe file accesses.

Add support for `docker plugin install --alias`

Uses normalized references for default names to avoid collisions when using default hosts/tags.

Some refactoring of the plugin manager to support the change, like removing the singleton manager and adding manager config struct.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2016-12-23 13:29:58 -08:00
..
testdata
checkpoint_create.go
checkpoint_create_test.go
checkpoint_delete.go
checkpoint_delete_test.go
checkpoint_list.go
checkpoint_list_test.go
client.go Change tls to TLS 2016-12-20 22:08:07 +08:00
client_mock_test.go
client_test.go Change tls to TLS 2016-12-20 22:08:07 +08:00
client_unix.go
client_windows.go
container_attach.go
container_commit.go
container_commit_test.go
container_copy.go
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_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 change minor mistake of spelling 2016-12-20 21:05:19 +08:00
events.go
events_test.go
hijack.go
image_build.go
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_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
image_tag_test.go
info.go
info_test.go
interface.go Implement content addressability for plugins 2016-12-23 13:29:58 -08: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
network_inspect_test.go
network_list.go
network_list_test.go
network_prune.go
network_remove.go
network_remove_test.go
node_inspect.go
node_inspect_test.go change minor mistake of spelling 2016-12-20 21:05:19 +08:00
node_list.go
node_list_test.go
node_remove.go
node_remove_test.go
node_update.go
node_update_test.go
ping.go change minor mistake of spelling 2016-12-20 21:05:19 +08:00
plugin_create.go
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
plugin_enable_test.go
plugin_inspect.go
plugin_inspect_test.go
plugin_install.go Implement content addressability for plugins 2016-12-23 13:29:58 -08:00
plugin_list.go
plugin_list_test.go
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
plugin_remove_test.go
plugin_set.go
plugin_set_test.go
README.md
request.go
request_test.go
secret_create.go
secret_create_test.go
secret_inspect.go
secret_inspect_test.go change minor mistake of spelling 2016-12-20 21:05:19 +08:00
secret_list.go
secret_list_test.go
secret_remove.go
secret_remove_test.go
service_create.go
service_create_test.go
service_inspect.go
service_inspect_test.go change minor mistake of spelling 2016-12-20 21:05:19 +08: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
service_update_test.go
swarm_get_unlock_key.go
swarm_init.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_init_test.go
swarm_inspect.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_inspect_test.go
swarm_join.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_join_test.go
swarm_leave.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_leave_test.go
swarm_unlock.go
swarm_update.go Change tls to TLS 2016-12-20 22:08:07 +08:00
swarm_update_test.go
task_inspect.go
task_inspect_test.go
task_list.go
task_list_test.go
transport.go Merge pull request #29565 from yuexiao-wang/fix-typo-tls 2016-12-22 12:10:09 +01:00
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
volume_remove.go
volume_remove_test.go

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.