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):
packagemainimport("context""fmt""github.com/moby/moby/client")funcmain(){// 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"),)iferr!=nil{panic(err)}deferapiClient.Close()// List all containers (both stopped and running).result,err:=apiClient.ContainerList(context.Background(),client.ContainerListOptions{All:true,})iferr!=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:=rangeresult.Items{fmt.Printf("%s %-22s %s\n",ctr.ID,ctr.Status,ctr.Image)}}