main.go 1021 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "strings"
  6. "github.com/docker/docker/api/types"
  7. "github.com/docker/docker/client"
  8. )
  9. func handleDockerClientErr(err error, cli *client.Client) {
  10. if strings.Contains(err.Error(), "Cannot connect to the Docker daemon") {
  11. fmt.Printf("The Docker daemon must be running in order to start Porter: connection to %s failed.\n", cli.DaemonHost())
  12. return
  13. }
  14. fmt.Println(err.Error())
  15. return
  16. }
  17. func main() {
  18. ctx := context.Background()
  19. cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
  20. if err != nil {
  21. panic(err)
  22. }
  23. containers, err := cli.ContainerList(ctx, types.ContainerListOptions{})
  24. if err != nil {
  25. handleDockerClientErr(err, cli)
  26. return
  27. }
  28. for _, container := range containers {
  29. fmt.Printf("%s %s\n", container.ID[:10], container.Image)
  30. }
  31. // images, err := cli.ImageList(ctx, types.ImageListOptions{})
  32. // if err != nil {
  33. // panic(err)
  34. // }
  35. // for _, image := range images {
  36. // fmt.Println(image.ID)
  37. // }
  38. }