Jupyter Docker Stacks — Docker Stacks documentation (original) (raw)

Jupyter Docker Stacks#

GitHub Actions badge Read the Docs badge pre-commit.ci status Discourse badge Binder badge

Jupyter Docker Stacks are a set of ready-to-run Docker images containing Jupyter applications and interactive computing tools. You can use a stack image to do any of the following (and more):

Quick Start#

You can try the quay.io/jupyter/base-notebook image on https://mybinder.org. Otherwise, the examples below may help you get started if you have Docker installed, know which Docker image you want to use, and want to launch a single Jupyter Application in a container.

The User Guide on ReadTheDocs describes additional uses and features in detail.

Note

Since 2023-10-20 our images are only pushed to Quay.io registry. Older images are available on Docker Hub, but they will no longer be updated.

Example 1#

This command pulls the jupyter/scipy-notebook image tagged 2025-03-14 from Quay.io if it is not already present on the local host. It then starts a container running a Jupyter Server with the JupyterLab frontend and exposes the container’s internal port 8888 to port 10000 of the host machine:

docker run -p 10000:8888 quay.io/jupyter/scipy-notebook:2025-03-14

You can modify the port on which the container’s port is exposed by changing the value of the -p option to -p 8888:8888.

Visiting http://<hostname>:10000/?token=<token> in a browser loads JupyterLab, where:

The container remains intact for restart after the Server exits.

Example 2#

This command pulls the jupyter/datascience-notebook image tagged 2025-03-14 from Quay.io if it is not already present on the local host. It then starts an ephemeral container running a Jupyter Server with the JupyterLab frontend and exposes the server on host port 10000.

docker run -it --rm -p 10000:8888 -v "${PWD}":/home/jovyan/work quay.io/jupyter/datascience-notebook:2025-03-14

The use of the -v flag in the command mounts the current working directory on the host (${PWD} in the example command) as /home/jovyan/work in the container. The server logs appear in the terminal.

Visiting http://<hostname>:10000/?token=<token> in a browser loads JupyterLab.

Due to the usage of the --rm flagDocker automatically cleans up the container and removes the file system when the container exits, but any changes made to the ~/work directory and its files in the container will remain intact on the host.The -i flag keeps the container’s STDIN open, and lets you send input to the container through standard input.The -t flag attaches a pseudo-TTY to the container.

Note

By default, jupyter’s root_dir is /home/jovyan. So, new notebooks will be saved there, unless you change the directory in the file browser.

To change the default directory, you must specify ServerApp.root_dir by adding this line to the previous command: start-notebook.py --ServerApp.root_dir=/home/jovyan/work.

Choosing Jupyter frontend#

JupyterLab is the default for all the Jupyter Docker Stacks images. It is still possible to switch back to Jupyter Notebook (or to launch a different startup command). You can achieve this by passing the environment variable DOCKER_STACKS_JUPYTER_CMD=notebook (or any other valid jupyter subcommand) at container startup; more information is available in the documentation.

Resources#

Acknowledgments#

CPU Architectures#

Using old images#

Python versions badge

This project only builds one set of images at a time. If you want to use the older Ubuntu and/or Python version, you can use the following images:

Contributing#

Please see the Contributor Guide on ReadTheDocsfor information about how to contribute recipes, features, tests, and community-maintained stacks.

Alternatives#