Selecting an Image — Docker Stacks documentation (original) (raw)
This section provides details about the first.
Core Stacks#
The Jupyter team maintains a set of Docker image definitions in the jupyter/docker-stacks GitHub repository. The following sections describe these images, including their contents, relationships, and versioning strategy.
jupyter/docker-stacks-foundation#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/docker-stacks-foundation
is a small image supporting a majority of options common across all core stacks. It is the basis for all other stacks on which Jupyter-related applications can be built (e.g., kernel-based containers, nbclient applications, etc.). As such, it does not contain application-level software like JupyterLab, Jupyter Notebook, or JupyterHub.
It contains:
- Package managers
- Unprivileged user
jovyan
(uid=1000
, configurable, see options in the common features section of this documentation) in groupusers
(gid=100
) with ownership over the/home/jovyan
and/opt/conda
paths tini
and astart.sh
script as the container entry point - useful for running alternative commands in the container as applications are added (e.g.ipython
,jupyter kernelgateway
,jupyter lab
)- A
run-hooks.sh
script, which can source/run files in a given directory - Options for a passwordless sudo
- Common system libraries like
bzip2
,ca-certificates
,locales
wget
to download external files- No preinstalled scientific computing packages
jupyter/base-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/base-notebook
adds base Jupyter Applications like JupyterLab, Jupyter Notebook, JupyterHub, and NBClassic and serves as the basis for all other stacks besides jupyter/docker-stacks-foundation
.
It contains:
- Everything in
jupyter/docker-stacks-foundation
- Minimally functional Server (e.g., no LaTeX support for saving notebooks as PDFs)
notebook
,jupyterhub-singleuser
, andjupyterlab
packages- A
start-notebook.py
script as the default command - A
start-singleuser.py
script useful for launching containers in JupyterHub - Options for a self-signed HTTPS certificate
Warning
jupyter/base-notebook
also contains start-notebook.sh
and start-singleuser.sh
files to maintain backward compatibility. External config that explicitly refers to those files should instead update to refer to start-notebook.py
and start-singleuser.py
. The shim .sh
files will be removed at some future date.
jupyter/minimal-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/minimal-notebook
adds command-line tools useful when working in Jupyter applications.
It contains:
- Everything in
jupyter/base-notebook
- Common useful utilities likecurl,git,nano (actually
nano-tiny
),tzdata,unzip, and vi (actuallyvim-tiny
), - TeX Live for notebook document conversion
jupyter/r-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/r-notebook
includes popular packages from the R ecosystem listed below:
- Everything in
jupyter/minimal-notebook
and its ancestor images - The R interpreter and base environment
- IRKernel to support R code in Jupyter notebooks
- tidyversepackages from conda-forge
- caret,crayon,devtools,forecast,hexbin,htmltools,htmlwidgets,nycflights13,randomforest,rcurl,rmarkdown,rodbc,rsqlite,shiny,tidymodels,unixodbcpackages from conda-forge
jupyter/julia-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/julia-notebook
includes popular packages from the Julia ecosystem listed below:
- Everything in
jupyter/minimal-notebook
and its ancestor images - The Julia compiler and base environment
- IJulia to support Julia code in Jupyter notebook
- Pluto.jl reactive Julia notebook interface, made accessible with jupyter-pluto-proxy
- HDF5 package
jupyter/scipy-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/scipy-notebook
includes popular packages from the scientific Python ecosystem.
- Everything in
jupyter/minimal-notebook
and its ancestor images - altair,beautifulsoup4,bokeh,bottleneck,cloudpickle,conda-forge::blas=*=openblas,cython,dask,dill,h5py,jupyterlab-git,matplotlib-base,numba,numexpr,openpyxl,pandas,patsy,protobuf,pytables,scikit-image,scikit-learn,scipy,seaborn,sqlalchemy,statsmodel,sympy,widgetsnbextension,xlrdpackages
- ipympl andipywidgetsfor interactive visualizations and plots in Python notebooks
- Facetsfor visualizing machine learning datasets
jupyter/tensorflow-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/tensorflow-notebook
includes popular Python deep learning libraries.
- Everything in
jupyter/scipy-notebook
and its ancestor images - TensorFlow machine learning library
- Jupyter Server Proxy to support TensorBoard
jupyter/pytorch-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/pytorch-notebook
includes popular Python deep learning libraries.
- Everything in
jupyter/scipy-notebook
and its ancestor images - pytorch machine learning library
jupyter/datascience-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/datascience-notebook
includes libraries for data analysis from the Python, R, and Julia communities.
- Everything in the
jupyter/scipy-notebook
,jupyter/r-notebook
, andjupyter/julia-notebook
images and their ancestor images - rpy2 package
jupyter/pyspark-notebook#
Source on GitHub |Dockerfile commit history |Quay.io 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
- grpcio-status
- grpcio
- pyarrow
jupyter/all-spark-notebook#
Source on GitHub |Dockerfile commit history |Quay.io image tags
jupyter/all-spark-notebook
includes Python and R support for Apache Spark.
- Everything in
jupyter/pyspark-notebook
and its ancestor images - IRKernel to support R code in Jupyter notebooks
- rcurl,sparklyr,ggplot2packages
CUDA enabled variants#
We provide CUDA accelerated versions of the pytorch-notebook
and tensorflow-notebook
images. Prepend a CUDA prefix (versioned prefix like cuda12-
for pytorch-notebook
or just cuda-
for tensorflow-notebook
) to the image tag to allow PyTorch or TensorFlow operations to use compatible NVIDIA GPUs for accelerated computation. We only build pytorch-notebook
for the last two major versions of CUDA. The tensorflow-notebook
image only supports the latest CUDA version listed in the officially tested build configurations.
For example, you could use the image quay.io/jupyter/pytorch-notebook:cuda12-python-3.11.8
or quay.io/jupyter/tensorflow-notebook:cuda-latest
.
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#
Every Monday and whenever a pull request is merged, images are rebuilt and pushed to the public container registry.
Versioning via image tags#
Whenever a docker image is pushed to the container registry, it is tagged with:
- the
latest
tag - a 12-character git commit SHA like
1ffe43816ba9
- a date formatted like
2023-01-30
- OS version like
ubuntu-22.04
- a set of software version tags like
python-3.10.8
andlab-3.5.3
Warning
- Tags before
2022-07-05
were sometimes incorrect. Please, do not rely on them. - Single-platform images have either
aarch64-
orx86_64-
tag prefixes, for example,quay.io/jupyter/base-notebook:aarch64-python-3.11.6
For stability and reproducibility, you should either reference a date formatted tag from a date before the current date (in UTC) or a git commit SHA older than the latest git commit SHA in the default branch of thejupyter/docker-stacks GitHub repository.