UI (User Interface) Containers
User-interface containers are used to run the Cauldron user interface in
a containerized fashion on a host system (computer) that shares access
with the notebook development files. Using these containers is useful
to isolate the Cauldron environment from the host computer, e.g. as a
container-based python environment.
Prebuilt UI images are available on docker hub with the following
repository tages:
swernst/cauldron:current-ui-standard
swernst/cauldron:current-ui-conda
swernst/cauldron:current-ui-miniconda
If you want to pin to a specific Cauldron version instead of
keeping up with the latest one, the current
can be replaced
with a version, e.g. swernst/cauldron:1.0.0-ui-standard
.
There are two ways to use these images:
Local Containerized Environment
This is the most common case, where the UI container will be executed
locally and serve as the Cauldron execution kernel as well as the UI.
To start such a container run a command like:
$ cd /path/to/notebooks
$ cauldron uidocker
Or directly as a Docker command like this:
$ docker run --rm -it \
-v /path/to/notebooks:/notebooks \
-p 8899:8899 \
swernst/cauldron:current-ui-standard
--rm
to cleanup the container once it is finished running,
-it
to show the interactive output of the container while it is running,
-v /path/to/notebooks:/notebooks
to mount the local notebook files into the container so that the container
has access to the notebook files when running. By default, these containers
will be looking for Cauldron notebook folders within the /notebooks
directory in the container, so it is recommended that the volume mount be there.
However, those comfortable with volume mounting can choose to mount multiple
volumes or use different locations entirely.
If you use the cauldron uidocker
command, the current directory will
be mounted to the /notebooks
directory in the container. It's possible
to override this with by specifying the
cauldron uidocker --directory=/path/to/notebooks
flag as part of the
command.
-p 8899:8899
to 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).
If you use the cauldron uidocker
command, a port will be automatically
found and used. A specific port can be specified with the
cauldron uidocker --port=8899
flag.
The UI can be loaded in the browser athttp://127.0.0.1:8899
after the container has started running (or whatever port is specified during
the command invocation).
In this scenario the Cauldron notebook will be executing inside the UI container
and communicating through the specified port mapping - port 8899 by default - with
the web-based UI running in the browser on the host system.
Remote-Connected Containerized Environment
The more advanced case is where the UI container will be used to communicate
with a remote kernel container running on a different host system (usually
in the cloud). For more information on how this works, see the
UI + Kernel Containerstopic.