mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
![]() The docker client has historically used Transport.TLSClientConfig to set the scheme for the API client. A recent moved the resolution to use the http.Transport directly, rather than save the TLSClientConfig state on a client struct. This caused issues when mutliple calls made with a single client would have this field set in the http package on pre-1.7 installations. This fix detects the presence of the TLSClientConfig once and sets the scheme accordingly. We still don't know why this issue doesn't happen with Go 1.7 but it must be more deterministic in the newer version. Signed-off-by: Stephen J Day <stephen.day@docker.com> |
||
---|---|---|
.. | ||
testdata | ||
checkpoint_create.go | ||
checkpoint_create_test.go | ||
checkpoint_delete.go | ||
checkpoint_delete_test.go | ||
checkpoint_list.go | ||
checkpoint_list_test.go | ||
client.go | ||
client_mock_test.go | ||
client_test.go | ||
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 | ||
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 | ||
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_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 | ||
plugin_disable.go | ||
plugin_disable_test.go | ||
plugin_enable.go | ||
plugin_enable_test.go | ||
plugin_inspect.go | ||
plugin_inspect_test.go | ||
plugin_install.go | ||
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 | ||
README.md | ||
request.go | ||
request_test.go | ||
service_create.go | ||
service_create_test.go | ||
service_inspect.go | ||
service_inspect_test.go | ||
service_list.go | ||
service_list_test.go | ||
service_remove.go | ||
service_remove_test.go | ||
service_update.go | ||
service_update_test.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_update.go | ||
swarm_update_test.go | ||
task_inspect.go | ||
task_inspect_test.go | ||
task_list.go | ||
task_list_test.go | ||
transport.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 Remote 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)
}
}