Containers Introduction
While Cauldron works great for local Python environments, it was designed to for containerized workflows in both interactive and non-interactive (running in production) modes. To ease working with containers, there are a number of pre-built Docker containers that you can use either directly or as a base image to customize for your needs. They are all located in the docker hub repository at:
Images come in 3 flavors of Python:
And there are two types of images that can be used that come in all three of the above flavors:
1. UI (User-Interface) Images
These are images that run the Cauldron user-interface, which can be used without having to run Cauldron from a local Python installation. The three possible images that will always have the latest version of Cauldron are:
  • swernst/cauldron:current-ui-standard
  • swernst/cauldron:current-ui-conda
  • swernst/cauldron:current-ui-miniconda
Or for cases where you want to pin to a specific Cauldron version the current can be replaced with a version, e.g. swernst/cauldron:1.0.0-ui-standard.
To use these containers, one can be start a command such as this:
$ docker run --rm -it \ -v /path/to/notebooks:/notebooks \ -p 8899:8899 \ swernst/cauldron:current-ui-standard
--rmto cleanup the container once it is finished running,
-itto show the interactive output of the container while it is running,
-v /path/to/notebooks:/notebooksto mount the local notebook files into the container so that the container has access to the notebook files when running.
-p 8899:8899to connect the container port 8899 to the local host port 8899 so that the UI running in the container is accessible from the local host system. A different local port can be used by changing the first port argument in the above command if needed (for example running multiple UI containers on the same local host).
The UI can be loaded in the browser athttp://127.0.0.1:8899after the container has started running.
2. Remote Kernel Images
These are images that run the Cauldron remote kernel, which can be used for Cauldron execution on remote systems. A good example of this would be running Cauldron on a cloud server. In this case the container is not located on the same system as the notebook files and display. The three possible images that will always have the latest version of Cauldron are:
  • swernst/cauldron:current-standard
  • swernst/cauldron:current-conda
  • swernst/cauldron:current-miniconda
Or for cases where you want to pin to a specific Cauldron version the current can be replaced with a version, e.g. swernst/cauldron:1.0.0-standard.
Starting a kernel container would look something like:
$ docker run --rm -it \ -p 5010:5010 \ swernst/cauldron:current-standard
--rmto cleanup the container once it is finished running,
-itto show the interactive output of the container while it is running,
-p 5010:5010to connect the container port 5010 to the remote host port 5010 so that the kernel inside the container is accessible to the remote host system. A different host port can be used by changing the first port argument in the above command if needed (for example running multiple kernels on the same remote host).