Docker is another mechanism that can be used to allow multiple users of the same notebook without collision. Docker is a system that allows you to construct sets of applications into an image that can be run in a container. It runs in most environments. Docker allows for many instances of an image to be run in the same machine, but maintains separate address space, so each user of a Docker image has their own instance of the software and their own set of data/variables.
Each image is a complete stack of software necessary to run, for example, a web server, web application(s), API(s), and so on.
It is not a large leap to think of an image of your notebook. The image contains Jupyter server code and your notebook. The result is a completely ...