package client_test import ( "context" "fmt" "log" "github.com/moby/moby/client" ) // This example demonstrates basic usage of the API client. // // It creates a new client with [client.New] using [client.FromEnv] (configuring // the client from commonly used environment variables such as DOCKER_HOST and // DOCKER_API_VERSION) and sets a custom User-Agent using [client.WithUserAgent]. // // API-version negotiation is enabled by default to allow downgrading // the API version when connecting with an older daemon version. // // It then lists all containers (both stopped and running) similar to // "docker ps --all". func Example() { apiClient, err := client.New( client.FromEnv, client.WithUserAgent("my-application/1.0.0"), ) if err != nil { log.Fatal(err) } defer apiClient.Close() // List all containers (both stopped and running). result, err := apiClient.ContainerList(context.Background(), client.ContainerListOptions{ All: true, }) if err != nil { log.Fatal(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) } }