github.com/walkingsparrow/docker@v1.4.2-0.20151218153551-b708a2249bfa/api/client/lib/image_list.go (about)

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