Files
moby/client
Sebastiaan van Stijn 842e788e14 client: fix response hooks for hijacked requests
Response hooks added in 2bc7febeb6 ("client: Add HTTP response
hooks") are only installed on the client's HTTP transport.

Hijacked requests use a separate transport and therefore bypass the
configured response hooks.

Wrap the hijack transport with hookTransport so response hooks are
also invoked for the HTTP upgrade response, and add coverage for the
hijack path.

updates 2bc7febeb6

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-09-30 14:06:10 +02:00
..
2026-09-18 19:13:14 +02:00
2016-09-07 11:05:58 -07:00
2025-07-21 09:30:05 -07:00
2026-03-12 18:53:41 +01:00
2026-09-18 19:13:14 +02:00
2026-03-12 18:53:41 +01:00
2026-01-24 17:15:45 +01:00
2026-03-12 18:53:41 +01:00
2026-03-14 19:30:07 +01:00
2025-11-12 17:53:36 +01:00
2025-12-05 15:57:55 +01:00
2025-10-08 12:06:31 -04:00
2025-11-12 17:53:36 +01:00
2025-11-12 17:53:36 +01:00
2025-11-27 12:05:27 +01:00
2025-11-12 17:53:36 +01:00
2025-11-12 17:53:36 +01:00
2026-07-09 09:59:25 +02:00
2026-03-12 18:53:41 +01:00
2025-11-12 17:53:36 +01:00
2025-11-12 17:53:36 +01:00
2026-08-29 13:04:12 +02:00
2026-08-29 13:04:12 +02:00

Go client for the Docker Engine API

PkgGoDev GitHub License OpenSSF Scorecard OpenSSF Best Practices

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 or pushing images, etc.

For example, to list all containers (the equivalent of docker ps --all):

package main

import (
	"context"
	"fmt"

	"github.com/moby/moby/client"
)

func main() {
	// Create a new client with "client.FromEnv" (configuring the client
	// from commonly used environment variables such as DOCKER_HOST and
	// DOCKER_API_VERSION) and set a custom User-Agent.
	//
	// API-version negotiation is enabled by default to allow downgrading
	// the API version when connecting with an older daemon version.
	apiClient, err := client.New(
		client.FromEnv,
		client.WithUserAgent("my-application/1.0.0"),
	)
	if err != nil {
		panic(err)
	}
	defer apiClient.Close()

	// List all containers (both stopped and running).
	result, err := apiClient.ContainerList(context.Background(), client.ContainerListOptions{
		All: true,
	})
	if err != nil {
		panic(err)
	}

	// Print each container's ID, status and the image it was created from.
	fmt.Printf("%s  %-22s  %s\n", "ID", "STATUS", "IMAGE")
	for _, ctr := range result.Items {
		fmt.Printf("%s  %-22s  %s\n", ctr.ID, ctr.Status, ctr.Image)
	}
}

Full documentation is available on pkg.go.dev.