Frequently Asked Questions (FAQ)#

How to persist user data#

There are 2 types of data, which you might want to persist.

  1. If you want to persist your environment (i.e. packages installed by mamba, conda, pip, apt-get, and so on), then you should create an inherited image and install packages only once while building your Dockerfile. An example of using mamba and pip in a child image is available here.


    If you install a package inside a running container (for example you run pip install <package> in a terminal), it won’t be preserved when you next run your image. To make it work, install this package in your inherited image and rerun docker build command.

  2. If you want to persist user data (files created by you, like Python scripts, notebooks, text files, and so on), then you should use a Docker bind mount or Docker Volume. You can find an example of using a bind mount here. There is also a mount troubleshooting section if you experience any issues.

Why we do not add your favorite package#

We have lots of users with different packages they want to use. Adding them all is impossible, so we have several images to choose from. Choose the image, that is closest to your needs, and feel free to add your package on top of our images.

Who is jovyan#

As described here:

noun – an inhabitant of Jupyter

Jovyan is often a special term used to describe members of the Jupyter community. It is also used as the user ID in the Jupyter Docker stacks or referenced in conversations. You can find more information here.

How to give root permissions to the user#

We have a recipe for enabling root permissions.