preloaded_docker_images: how do they work?

mrstevegross
Contributor III

At my org, when we start a databricks cluster, it oftens takes awhile to become available (due to (1) instance provisioning, (2) library loading, and (3) init script execution). I'm exploring whether an instance pool could be a viable strategy for improving cluster execution time.

I see there's a feature called "preloaded_docker_images" (https://docs.databricks.com/api/workspace/instancepools/get#preloaded_docker_images), but the docs are limited. Is there canonincal documentation the explains:

  1. When are the docker images loaded in the lifecycle of the instance?
  2. Given that you can supply N images, how does container isolation work? I only need to load one container, but it's unclear to me if my Spark job will run "inside" that container? (Given that I'm using the container to preload jars, I'm pretty sure the Spark job needs to be able to see those jars!)