[PYTHON] Essayez de créer Jupyter Hub avec Docker

Avant

À PyCon 2015, iPython (Jupyter) Notebook est indispensable pour diverses personnes! J'ai donc pensé l'installer pour le moment, mais je n'avais pas assez d'informations japonaises pour avoir essayé Jupyter Saba avec Docker, donc je partagerai le dossier de travail.

installation de docker

Puisque Debian 8 (Jassie) est le vaisseau mère

$ sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

bash:/etc/apt/sources.list.d/docker.list


# Debian Jessie
deb https://apt.dockerproject.org/repo debian-jessie main
$ sudo apt-get update
$ sudo apt-get install docker-engine
$ sudo usermod -a -G docker yi01

Création d'une image Docker pour JupyterHub

Il y a des pièges ici.

Tout d'abord, c'est sur le Docker Hub

Il n'y a pas d'implémentation autour de l'authentification, vous devez donc créer jupyterhub_config.py et définir la méthode d'authentification, etc. en utilisant l'option -v de docker.

Cependant, il est difficile de faire diverses choses à partir de zéro, donc j'utiliserai l 'exemple utilisant OAuth de GitHub préparé par jupyter.

$ git clone https://github.com/jupyter/oauthenticator.git
$ cd oauthenticator

Maintenant, modifiez la liste des utilisateurs selon le README.

Paramètres utilisateur GitHub


diff --git a/example/addusers.sh b/example/addusers.sh
index eb2d86b..cedd272 100644
--- a/example/addusers.sh
+++ b/example/addusers.sh
@@ -7,6 +7,6 @@ for line in `cat userlist`; do
   user=`echo $line | cut -f 1 -d' '`
   echo "adding user $user"
   useradd -m -s /bin/bash $user
-  cp -r /srv/ipython/examples /home/$user/examples
-  chown -R $user /home/$user/examples
+#  cp -r /srv/ipython/examples /home/$user/examples
+#  chown -R $user /home/$user/examples
 done
diff --git a/example/userlist b/example/userlist
index e69de29..d8f3556 100644
--- a/example/userlist
+++ b/example/userlist
@@ -0,0 +1 @@
+YusukeIwaki admin

En guise de mise en garde, si vous modifiez simplement la liste des utilisateurs, vous pouvez utiliser docker build

cp: cannot stat ‘/srv/ipython/examples’: No such file or directory
chown: cannot access ‘/home/YusukeIwaki/examples’: No such file or directory

J'obtiens une erreur comme celle-ci et il y a de la mousse, je vais donc modifier un peu le script shell. Après l'édition,

$ cd example
$ docker build -t jupyter/oauthenticator .

Donc, si vous obtenez un journal de type Réussite,

Vérification


$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
jupyter/oauthenticator   latest              209358b449b6        24 seconds ago      934.9 MB
jupyter/jupyterhub       latest              fd5445f17a96        5 days ago          934.8 MB

Paramètres OAuth de GitHub

Sur Écran des paramètres GitHub スクリーンショット 2015-10-12 1.14.29.png

Réglez comme ça. Veuillez modifier le nom d'hôte et le numéro de port du rappel selon le cas. Après avoir enregistré les informations d'identification OAuth sur le site GitHub, entrez l'ID client et le secret qui y sont obtenus.

secret


diff --git a/example/env b/example/env
index 9f32b5c..7a921da 100644
--- a/example/env
+++ b/example/env
@@ -1,5 +1,5 @@
 # add your github oauth config to this file,
 # and run the container with `docker run -it -p 9000:8000 --env-file=env jupyter/oauthenticator`
-GITHUB_CLIENT_ID=
-GITHUB_CLIENT_SECRET=
-OAUTH_CALLBACK_URL=
+GITHUB_CLIENT_ID=21d***********e7a3
+GITHUB_CLIENT_SECRET=2ea1f***********************e9da7
+OAUTH_CALLBACK_URL=http://localhost:8001/hub/oauth_callback

Réglez-le comme ça.

Commencez

$ docker run -it -p 8001:8000 --env-file=env jupyter/oauthenticator

Ainsi, lorsque vous y accédez depuis un navigateur ...

スクリーンショット 2015-10-12 0.13.20.png

Kita━━━━ (゜ ∀ ゜) ━━━━ !!

Recommended Posts

Essayez de créer Jupyter Hub avec Docker
Essayez Selenium Grid avec Docker
Créer une application Rails avec Docker
Essayons gRPC avec Go et Docker
Essayez de construire PySide2
[Python3] [Ubuntu16] [Docker] Essayez la reconnaissance faciale avec OpenFace
Essayez de créer un environnement pour MayaPython avec VisualStudioCode
Serveur TFTP avec Docker
Essayez de gratter avec Python.
Essayez SNN avec BindsNET
Serveur proxy avec Docker
Bonjour le monde avec Docker
Essayez la régression avec TensorFlow
Un mémo sur la création d'une application Django (Python) avec Docker
Essayez de défier le sol par récursif
Essayez l'optimisation des fonctions avec Optuna
Essayez l'apprentissage en profondeur avec TensorFlow
Essayez la détection des bords avec OpenCV
Essayez d'utiliser l'image Docker de Jupyter
Essayez Google Mock avec C
Essayez d'utiliser matplotlib avec PyCharm
Essayez de programmer avec un shell!
Essayez la programmation GUI avec Hy
Essayez Auto Encoder avec Pytorch
Essayez la sortie Python avec Haxe 3.2
Essayez l'opération matricielle avec NumPy
Essayez d'implémenter XOR avec PyTorch
Essayez d'exécuter CNN avec ChainerRL
Essayez différentes choses avec PhantomJS
Essayez le Deep Learning avec FPGA
La vie PySpark à partir de Docker
Préparer l'environnement python3 avec Docker
Essayez d'exécuter Python avec Try Jupyter
Essayez d'implémenter le parfum avec Go
Essayez la reconnaissance faciale avec Python
Essayez OpenCV avec Google Colaboratory
Essayez le machine learning à la légère avec Kaggle
Essayez TensorFlow MNIST avec RNN
Essayez d'utiliser le folium avec anaconda
(Remarque) Remarques sur la création de l'environnement TensorFlow + Flask + Nginx avec Docker Compose
Créer un environnement Kubernetes avec Ansible 2
Essayez le Deep Learning avec les concombres FPGA-Select
Essayez de gratter avec Python + Beautiful Soup
Essayez d'exécuter tensorflow sur Docker + anaconda
Japaneseize Matplotlib avec Alpine en utilisant Docker
Jusqu'à ce que vous démarriez Jupyter dans Docker
Easy Slackbot avec Docker et Errbot
Essayez d'exploiter Facebook avec Python
Créer un serveur Flask avec Docker
Créer un fichier deb avec Docker
Conseils pour exécuter Go avec Docker
Essayez la décomposition de valeurs singulières avec Python
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Construire un environnement Mysql + Python avec docker
Déployer l'application Django avec Docker
Essayez l'invite http avec un accès http interactif
Essayez le traitement du signal audio avec librosa-Beginner
Essayez de prédire les courses de chevaux avec Chainer
Développement Google AppEngine avec Docker
Essayez de profiler avec ONNX Runtime