Outils pour utilisateurs

Outils du site


dev:python:jupyter-notebook:installation_jupyter_via_docker

Installer Jupyter via Docker

Il existe plusieurs images, la version scipy-notebook inclus des packages populaires de l'écosystème scientifique Python:

docker pull jupyter/scipy-notebook:python-3.9.6
docker run --rm -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v "${PWD}":/home/jovyan/work jupyter/scipy-notebook:python-3.9.6

Authentification

Par défaut à chaque démarrage du service un jeton aléatoire (token) est généré. Il est affiché dans les logs et doit être intégré à la requête pour pouvoir être autorisé à accéder au service:

docker container logs jupyter

Définir un mot de passe

Lors du premier démarrage, on saisit l'URL accompagnée du jeton, on peut alors définir un mot de passe. Il est également possible de définir un mot de passe en amont. Il est stocké dans un fichier de configuration au format JSON

# Création d'un conteneur temporaire pour générer un fichier de configuration
docker run --name jupyter -it --rm jupyter/base-notebook start.sh
jupyter notebook password

Récupérer le fichier de configuration généré:

docker container cp jupyter:/home/jovyan/.jupyter/jupyter_notebook_config.json .

On peut maintenant créer un conteneur en montant en lecture seule le fichier de configuration:

docker container run --name jupyter --detach --user 1000 --group-add users \
        -v "${PWD}/work":/home/jovyan/work \
        -v "${PWD}/jupyter_notebook_config.json":"/home/jovyan/.jupyter/jupyter_notebook_config.json":ro \
        -e JUPYTER_ENABLE_LAB=yes -e RESTARTABLE=yes \
        --publish "127.0.0.1:9090:8888/tcp" jupyter/scipy-notebook:python-3.9.6

Configuration du notebook

Le fichier de configuration global du notebook est un fichier python qui peut être généré puis modifier au besoin:

# Création d'un conteneur temporaire pour générer un fichier de configuration
docker run --name jupyter -it --rm jupyter/scipy-notebook:python-3.9.6 start.sh
jupyter notebook --generate-config

Extraire le fichier du conteneur

docker container cp jupyter:/home/jovyan/.jupyter/jupyter_notebook_config.py ./conf/

Le mot de passe peut également être définit dans le fichier jupyter_notebook_config.py mais il doit avant être généré manuellement depuis un interpréteur Python

Depuis le conteneur temporaire, lancer un interpreteur puis les commandes suivantes:

from notebook.auth import passwd;
 
# Il est déconseillé de définir directement l'argument passphrase depuis
# ipython car il sera visible dans l'historique de commandes.
# Appeler la fonction passwd() sans l'argument passphrase, il sera 
# demandé de façon interactive
passwd(algorithm='sha1')
 
# copier le hash généré et quitter
quit()

Références

dev/python/jupyter-notebook/installation_jupyter_via_docker.txt · Dernière modification : 2021/08/29 11:09 de yoann