- Jupyter Notebook server v4.0.x
- Conda Python 3.4.x and Python 2.7.x environments
- pandas, matplotlib, scipy, seaborn, scikit-learn, scikit-image, sympy, cython, patsy, statsmodel, cloudpickle, dill, numba, bokeh pre-installed
- Conda R v3.2.x and channel
- plyr, devtools, dplyr, ggplot2, tidyr, shiny, rmarkdown, forecast, stringr, rsqlite, reshape2, nycflights13, caret, rcurl, and randomforest pre-installed
- Julia v0.3.x with Gadfly and RDatasets pre-installed
- Unprivileged user
choptiu
(uid=1000, configurable, see options) in groupusers
(gid=100) with ownership over/home/choptiu
and/opt/conda
- (v4.0.x) tini as the container entrypoint and start-notebook.sh as the default command
- Options for HTTPS, password auth, and passwordless
sudo
The following command starts a container with the Notebook server listening for HTTP connections on port 8888 without authentication configured.
docker run -d -p 8888:8888 choptiu/datascience-notebook
You may customize the execution of the Docker container and the Notebook server it contains with the following optional arguments.
-e PASSWORD="YOURPASS"
- Configures Jupyter Notebook to require the given password. Should be conbined withUSE_HTTPS
on untrusted networks.-e USE_HTTPS=yes
- Configures Jupyter Notebook to accept encrypted HTTPS connections. If apem
file containing a SSL certificate and key is not found in/home/choptiu/.ipython/profile_default/security/notebook.pem
, the container will generate a self-signed certificate for you.- (v4.0.x)
-e NB_UID=1000
- Specify the uid of thechoptiu
user. Useful to mount host volumes with specific file ownership. -e GRANT_SUDO=yes
- Gives thechoptiu
user passwordlesssudo
capability. Useful for installing OS packages. You should only enablesudo
if you trust the user or if the container is running on an isolated host.-v /some/host/folder/for/work:/home/choptiu/work
- Host mounts the default working directory on the host to preserve work even when the container is destroyed and recreated (e.g., during an upgrade).-v /some/host/folder/for/server.pem:/home/choptiu/.local/share/jupyter/notebook.pem
- Mounts a SSL certificate plus key forUSE_HTTPS
. Useful if you have a real certificate for the domain under which you are running the Notebook server.-e INTERFACE=10.10.10.10
- Configures Jupyter Notebook to listen on the given interface. Defaults to '*', all interfaces, which is appropriate when running using default bridged Docker networking. When using Docker's--net=host
, you may wish to use this option to specify a particular network interface.-e PORT=8888
- Configures Jupyter Notebook to listen on the given port. Defaults to 8888, which is the port exposed within the Dockerfile for the image. When using Docker's--net=host
, you may wish to use this option to specify a particular port.
The default Python 3.x Conda environment resides in /opt/conda
. A second Python 2.x Conda environment exists in /opt/conda/envs/python2
. You can switch to the python2 environment in a shell by entering the following:
source activate python2
You can return to the default environment with this command:
source deactivate
The commands ipython
, python
, pip
, easy_install
, and conda
(among others) are available in both environments.