image_remove.go 798 B

1234567891011121314151617181920212223242526272829303132333435
  1. package client
  2. import (
  3. "encoding/json"
  4. "net/http"
  5. "net/url"
  6. "github.com/docker/docker/api/types"
  7. "golang.org/x/net/context"
  8. )
  9. // ImageRemove removes an image from the docker host.
  10. func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) {
  11. query := url.Values{}
  12. if options.Force {
  13. query.Set("force", "1")
  14. }
  15. if !options.PruneChildren {
  16. query.Set("noprune", "1")
  17. }
  18. resp, err := cli.delete(ctx, "/images/"+imageID, query, nil)
  19. if err != nil {
  20. if resp.statusCode == http.StatusNotFound {
  21. return nil, imageNotFoundError{imageID}
  22. }
  23. return nil, err
  24. }
  25. var dels []types.ImageDeleteResponseItem
  26. err = json.NewDecoder(resp.body).Decode(&dels)
  27. ensureReaderClosed(resp)
  28. return dels, err
  29. }