code: func (f *dockerFetcher) Hash(u *url.URL) (string, error) {
  	ensureLogger(f.Debug)
  	dockerURL, err := d2acommon.ParseDockerURL(path.Join(u.Host, u.Path))
  	if err != nil {
  		return "", fmt.Errorf(`invalid docker URL %q; expected syntax is "docker://[REGISTRY_HOST[:REGISTRY_PORT]/]IMAGE_NAME[:TAG]"`, u)
  	}
  	latest := dockerURL.Tag == "latest"
  	return f.fetchImageFrom(u, latest)
  }
docs: // Hash uses docker2aci to download the image and convert it to
  // ACI, then stores it in the store and returns the hash.