image_list.go 909 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package lib
  2. import (
  3. "encoding/json"
  4. "net/url"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/api/types/filters"
  7. )
  8. // ImageList returns a list of images in the docker host.
  9. func (cli *Client) ImageList(options types.ImageListOptions) ([]types.Image, error) {
  10. var images []types.Image
  11. query := url.Values{}
  12. if options.Filters.Len() > 0 {
  13. filterJSON, err := filters.ToParam(options.Filters)
  14. if err != nil {
  15. return images, err
  16. }
  17. query.Set("filters", filterJSON)
  18. }
  19. if options.MatchName != "" {
  20. // FIXME rename this parameter, to not be confused with the filters flag
  21. query.Set("filter", options.MatchName)
  22. }
  23. if options.All {
  24. query.Set("all", "1")
  25. }
  26. serverResp, err := cli.get("/images/json", query, nil)
  27. if err != nil {
  28. return images, err
  29. }
  30. defer ensureReaderClosed(serverResp)
  31. err = json.NewDecoder(serverResp.body).Decode(&images)
  32. return images, err
  33. }