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 that handles common environment variables// for configuration (DOCKER_HOST, DOCKER_API_VERSION), and does// API-version negotiation to allow downgrading the API version// when connecting with an older daemon version.apiClient,err:=client.New(client.FromEnv)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)}}