def pull_image_from_dockerhub(self, image_name: str):
        """
        Pull a Docker image using the Docker SDK.

        Starting from 2.17.0, the image name will have a "-cloud" suffix. E.g., "marqoai/marqo:2.17.0-cloud".

        Args:
            image_name (str): The name of the Docker image to pull.

        Raises:
            RuntimeError: If the image cannot be pulled.
        """

        variants = [
            image_name,
            image_name + "-cloud",
        ]

        available_variants = [v for v in variants if self._check_image_exists_on_dockerhub(v)]
            
        if not available_variants:
            raise RuntimeError(f"Image {image_name} and its variants = {variants} do not exist on DockerHub.")

        if len(available_variants) > 1:
            self.logger.warning(f"Multiple variants exist on DockerHub: {available_variants}. We will use the first one "
                                f"{available_variants[0]}.")

        target_image = available_variants[0]
        try:
            self.logger.debug(f"Trying to pull image: {target_image}")
            self.docker_client.images.pull(target_image)
            self.logger.info(f"Successfully pulled image: {target_image}")
            image = self.docker_client.images.get(target_image)
            # Retag to base image name
            image.tag(image_name.split(":")[0], image_name.split(":")[1])
        except APIError as e:
            raise RuntimeError(f"Failed to pull image {target_image} from DockerHub.")

        Pull a Docker image using the Docker SDK.

        Starting from 2.17.0, the image name will have a "-cloud" suffix. E.g., "marqoai/marqo:2.17.0-cloud".

        Args:
            image_name (str): The name of the Docker image to pull.

        Raises:
            RuntimeError: If the image cannot be pulled.
        
tests/compatibility_tests/docker_manager.py