code: def image_id_from_registry(image_name):
      
      registry, repository, tag = parse(image_name)
      try:
          token = auth_token(registry, repository).get("token")
          # dockerhub is crazy
          if registry == "index.docker.io":
              registry = "registry-1.docker.io"
          res = requests.head("https://{}/v2/{}/manifests/{}".format(registry, repository, tag), headers={
              "Authorization": "Bearer {}".format(token),
              "Accept": "application/vnd.docker.distribution.manifest.v2+json"
          }, timeout=5)
          res.raise_for_status()
      except requests.RequestException:
          log.error("Received {} when attempting to get digest for {}".format(
              res, image_name))
          return None
      return "@".join([registry+"/"+repository, res.headers["Docker-Content-Digest"]])
docs: Get the docker id from a public or private registry