15 KiB
Selecting an Image
Using one of the Jupyter Docker Stacks requires two choices:
- Which Docker image you wish to use
- How you wish to start Docker containers from that image
This section provides details about the first.
Core Stacks
The Jupyter team maintains a set of Docker image definitions in the https://github.com/jupyter/docker-stacks GitHub repository. The following sections describe these images including their contents, relationships, and versioning strategy.
jupyter/base-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/base-notebook
is a small image supporting the
options common across all core stacks. It is the basis for all other stacks.
- Minimally-functional Jupyter Notebook server (e.g., no LaTeX support for saving notebooks as PDFs)
- Miniforge Python 3.x in
/opt/conda
with two package managers - No preinstalled scientific computing packages
- Unprivileged user
jovyan
(uid=1000
, configurable, see options) in groupusers
(gid=100
) with ownership over the/home/jovyan
and/opt/conda
paths tini
as the container entrypoint and astart-notebook.sh
script as the default command- A
start-singleuser.sh
script useful for launching containers in JupyterHub - A
start.sh
script useful for running alternative commands in the container (e.g.ipython
,jupyter kernelgateway
,jupyter lab
) - Options for a self-signed HTTPS certificate and passwordless sudo
jupyter/minimal-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/minimal-notebook
adds command line tools useful when working in Jupyter applications.
- Everything in
jupyter/base-notebook
- TeX Live for notebook document conversion
- git,
vi (actually
vim-tiny
), nano (actuallynano-tiny
), tzdata, and unzip
jupyter/r-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/r-notebook
includes popular packages from the R ecosystem.
- Everything in
jupyter/minimal-notebook
and its ancestor images - The R interpreter and base environment
- IRKernel to support R code in Jupyter notebooks
- tidyverse packages from conda-forge
- devtools, shiny, rmarkdown, forecast, rsqlite, nycflights13, caret, tidymodels, rcurl, and randomforest packages from conda-forge
jupyter/scipy-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/scipy-notebook
includes popular packages from the scientific Python ecosystem.
- Everything in
jupyter/minimal-notebook
and its ancestor images - dask, pandas, numexpr, matplotlib, scipy, seaborn, scikit-learn, scikit-image, sympy, cython, patsy, statsmodel, cloudpickle, dill, numba, bokeh, sqlalchemy, hdf5, vincent, beautifulsoup, protobuf, xlrd, bottleneck, and pytables packages
- ipywidgets and ipympl for interactive visualizations and plots in Python notebooks
- Facets for visualizing machine learning datasets
jupyter/tensorflow-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/tensorflow-notebook
includes popular Python deep learning libraries.
- Everything in
jupyter/scipy-notebook
and its ancestor images - tensorflow and keras machine learning libraries
jupyter/datascience-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/datascience-notebook
includes libraries for data analysis from the Julia, Python, and R
communities.
- Everything in the
jupyter/scipy-notebook
andjupyter/r-notebook
images, and their ancestor images - The Julia compiler and base environment
- IJulia to support Julia code in Jupyter notebooks
- HDF5, Gadfly, and RDatasets packages
jupyter/pyspark-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/pyspark-notebook
includes Python support for Apache Spark.
- Everything in
jupyter/scipy-notebook
and its ancestor images - Apache Spark with Hadoop binaries
jupyter/all-spark-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
jupyter/all-spark-notebook
includes Python, R, and Scala support for Apache Spark.
- Everything in
jupyter/pyspark-notebook
and its ancestor images - IRKernel to support R code in Jupyter notebooks
- Apache Toree and spylon-kernel to support Scala code in Jupyter notebooks
- ggplot2, sparklyr, and rcurl packages
Image Relationships
The following diagram depicts the build dependency tree of the core images. (i.e., the FROM
statements in their Dockerfiles). Any given image inherits the complete content of all ancestor
images pointing to it.
Builds
Pull requests to the jupyter/docker-stacks
repository trigger builds of all images on GitHub
Actions. These images are for testing purposes only and are not saved for use. When pull requests
merge to master, all images rebuild on Docker Cloud and become available to docker pull
from
Docker Hub.
Versioning
The latest
tag in each Docker Hub repository tracks the master branch HEAD
reference on GitHub.
latest
is a moving target, by definition, and will have backward-incompatible changes regularly.
Every image on Docker Hub also receives a 12-character tag which corresponds with the git commit SHA
that triggered the image build. You can inspect the state of the jupyter/docker-stacks
repository
for that commit to review the definition of the image (e.g., images with tag 7c45ec67c8
were built
from
https://github.com/jupyter/docker-stacks/tree/7c45ec67c8e7).
You must refer to git-SHA image tags when stability and reproducibility are important in your work.
(e.g. FROM jupyter/scipy-notebook:7c45ec67c8e7
,
docker run -it --rm jupyter/scipy-notebook:7c45ec67c8e7
). You should only use latest
when a
one-off container instance is acceptable (e.g., you want to briefly try a new library in a
notebook).
Community Stacks
The core stacks are just a tiny sample of what's possible when combining Jupyter with other technologies. We encourage members of the Jupyter community to create their own stacks based on the core images and link them below.
-
csharp-notebook is a community Jupyter Docker Stack image. Try C# in Jupyter Notebooks. The image includes more than 200 Jupyter Notebooks with example C# code and can readily be tried online via mybinder.org. Click here to launch
.
-
education-notebook is a community Jupyter Docker Stack image. The image includes nbgrader and RISE on top of the datascience-notebook image. Click here to launch it on
.
-
crosscompass/ihaskell-notebook
Source on GitHub | Dockerfile commit history | Docker Hub image tags
crosscompass/ihaskell-notebook
is based on IHaskell. Includes popular packages and example notebooks. -
java-notebook is a community Jupyter Docker Stack image. The image includes IJava kernel on top of the minimal-notebook image. Click here to launch it on
.
-
sage-notebook is a community Jupyter Docker Stack image with the sagemath kernel on top of the minimal-notebook image. Click here to launch it on
.
-
GPU-Jupyter: Leverage Jupyter Notebooks with the power of your NVIDIA GPU and perform GPU calculations using Tensorflow and Pytorch in collaborative notebooks. This is done by generating a Dockerfile, that consists of the nvidia/cuda base image, the well-maintained docker-stacks that is integrated as submodule and GPU-able libraries like Tensorflow, Keras and PyTorch on top of it.
-
PRP GPU Jupyter repo and Registry: PRP (Pacific Research Platform) maintained registry for jupyter stack based on NVIDIA CUDA-enabled image. Added the PRP image with Pytorch and some other python packages, and GUI Desktop notebook based on https://github.com/jupyterhub/jupyter-remote-desktop-proxy.
-
cgspatial-notebook is a community Jupyter Docker Stack image. The image includes major geospatial Python & R libraries on top of the datascience-notebook image. Try it on binder:
-
kotlin-notebook is a community Jupyter Docker Stack image. The image includes Kotlin kernel for Jupyter/IPython on top of the
base-notebook
image. Try it on Binder:
See the contributing guide for information about how to create your own Jupyter Docker Stack.