Créez un environnement de science des données de base (Jupyter, Python, R, Julia, bibliothèque standard) avec Docker.

table des matières

motivation

――Je souhaite créer un environnement d'analyse de données avec ** Docker **. -Je veux utiliser ** Python **, ** R ** ou ** Julia ** avec ** Jupyter **. ――Je souhaite que vous incluiez dès le début des bibliothèques et des packages standard pour chaque langue.

Lecteur supposé

--Les personnes qui souhaitent créer un environnement de base de la science des données avec Docker

Si vous êtes une personne comme celle-ci et entrez la commande conformément à cet article, nous visons à créer un environnement d'analyse de données.

Actuellement, nous avons confirmé le démarrage sur macOS High Sierra et Ubuntu 18.04.

Vrai travail

Installer Docker

Si Docker lui-même n'est pas installé, vous ne pouvez pas effectuer les opérations suivantes. Tout d'abord, veuillez installer Docker lui-même en fonction du système d'exploitation à partir du site Web officiel de Docker.

Sélectionnez et obtenez l'image Docker

Docker a une image Docker pleine d'applications. Vous devez sélectionner l'image Docker requise en fonction du type d'environnement que vous souhaitez créer.

Cette fois, je veux utiliser `` Jupyter Notebook '', donc j'utiliserai l'image Docker publiée sur Jupyter official Github.

Le fonctionnaire de Jupyter publie différents types d'images Docker. Cette fois,

Je veux créer un environnement avec chacun d'eux, donc j'utilise quelque chose appelé `` datascience-notebook ''. Veuillez consulter le site Web officiel de Jupyter pour plus de détails sur cette image Docker.

D'autres images Docker publiées par le responsable de Jupyter et leurs caractéristiques sont faciles à comprendre en regardant le tableau ci-dessous.

projects

Maintenant que l'image à utiliser a été décidée, téléchargez d'abord l'image du docker vers Local avec `` docker pull ''.

$ docker pull jupyter/datascience-notebook

docker pullarrière,docker run jupyter/datascience-notebookLe conteneur démarre toujours, mais il existe les problèmes suivants.

  1. Les données ne peuvent pas être conservées.
  2. Vous n'avez pas défini de mot de passe.

Si vous ne persistez pas les données, ce sera difficile plus tard. Cependant, il existe de nombreux cas où le mot de passe n'est pas nécessaire si vous travaillez uniquement avec Local, vous pouvez donc le lire.

Obtenez la chaîne de hachage du mot de passe à définir

Pour les paramètres de mot de passe,

  1. Générez une ** chaîne de hachage ** du mot de passe utilisé dans l'environnement du conteneur docker qui sera effacée une fois.
  2. Définissez le mot de passe lors du démarrage de l'environnement de production.

Je vais d'abord l'écrire car je vais suivre la procédure. Si vous n'avez pas besoin d'un mot de passe, veuillez lire ce chapitre.

Tout d'abord, entrez dans l'environnement `` bash '' du conteneur docker avec la commande suivante.

$ docker run -it --rm jupyter/datascience-notebook /bin/bash

Si vous entrez en toute sécurité dans l'environnement `` bash '' du conteneur, la sortie passera à ce qui suit.

jovyan@Alphabet:~$ 

Si la sortie est commutée, utilisez python dans le conteneur docker pour obtenir la chaîne de hachage du mot de passe que vous souhaitez utiliser. La commande suivante lancera une invite pour hacher votre mot de passe.

(À l'intérieur du conteneur Docker) $ python -c 'from notebook.auth import passwd;print(passwd())'

Lorsque vous entrez la commande, vous serez invité à entrer le mot de passe que vous souhaitez utiliser, alors entrez-le deux fois.

(À l'intérieur du conteneur Docker) $ python -c 'from notebook.auth import passwd;print(passwd())'
Enter password:
Verify password:
sha1:YOUR_PASSWORD_HASH_VALUE

Gardez à l'esprit que le sha1: YOUR_PASSWORD_HASH_VALUE``` (YOUR_PASSWORD_HASH_VALUE dépend de votre environnement) qui est généré après avoir entré le mot de passe deux fois sera utilisé plus tard.

Une fois que vous avez obtenu la chaîne de hachage, vous êtes de retour dans l'environnement local car vous n'avez pas besoin de travailler dans ce conteneur. De plus, comme j'ai défini l'option `` --rm '' lors du démarrage du conteneur Docker, ce conteneur est automatiquement supprimé lorsque le conteneur Docker est arrêté.

(À l'intérieur du conteneur Docker) $ exit

Définissez le mot de passe, rendez le fichier persistant et démarrez le conteneur Docker dans l'environnement d'analyse de données.

Une fois que vous avez la chaîne de hachage du mot de passe que vous souhaitez utiliser, il est temps de lancer le conteneur Docker pour analyse. Vous pouvez définir des mots de passe et conserver les fichiers en transmettant des options supplémentaires lors du démarrage du conteneur Docker.

Comme mentionné précédemment, il n'y a pas de problème avec le mot de passe même s'il ne dépend pas de l'environnement. Cependant, sachez que si vous ne persistez pas les fichiers, tout ce que vous avez fait dans le conteneur disparaîtra.

Démarrez le conteneur Docker de l'environnement d'analyse de données avec la commande suivante.

$ docker run  \
    --user root \
    -e GRANT_SUDO=yes \
    -e NB_UID=$UID \
    -e NB_GID=$GID \
    -e TZ=Asia/Tokyo \
    -p 8888:8888 \
    --name notebook \
    -v ~/path/to/directory/:/home/jovyan/work \
    jupyter/datascience-notebook \
    start-notebook.sh \
    --NotebookApp.password='sha1:YOUR_PASSWORD_HASH_VALUE'

Pour expliquer les options

  1. La persistance des fichiers est définie dans la partie suivante.
-v ~/path/to/directory/:/home/jovyan/work/

En faisant cela, le répertoire de travail et ci-dessous qui peuvent être vus à partir du notebook jupyter seront synchronisés avec le répertoire local.

~/path/to/directory/Est la partie qui définit le répertoire où les fichiers peuvent être échangés avec le conteneur Docker, veuillez donc utiliser votre répertoire préféré tel que le répertoire de travail de chaque personne.

  1. Le mot de passe de `` Jupyter Notebook '' est défini dans la partie suivante.
--NotebookApp.password='sha1:YOUR_PASSWORD_HASH_VALUE'

YOUR_PASSWORD_HASH_Pour VALUE, entrez la chaîne de hachage que vous avez générée précédemment.




 Si vous entrez la commande ci-dessus et qu'aucune erreur n'est générée, Jupyter devrait avoir démarré avec succès.
 Accédons-y avec un navigateur et vérifions-le.
 Dans la plupart des cas, vous pouvez le trouver sur http: // localhost: 8888.

 Lors de la création dans un environnement de serveur, remplacez localhost par l'adresse IP du serveur cible.
 Dans l'environnement serveur, il existe des cas où l'accès n'est pas possible car le port du serveur lui-même est fermé.
 Dans ce cas, ouvrez le port utilisé par Jupyter Notebook.


 L'image ci-dessous est celle du démarrage réussi.
 Si vous voyez une page comme celle-ci, vous pouvez vous connecter en utilisant le mot de passe que vous avez défini précédemment.

 ![ss_2017-06-30_17.11.51.png](https://qiita-image-store.s3.amazonaws.com/0/43351/c99a80ea-9f4e-5c71-5cc8-3dafa9ae187c.png)

 Après cela, profitez de l'environnement Jupyter dans votre langue préférée!

Let's enjoy data science!


Recommended Posts

Créez un environnement de science des données de base (Jupyter, Python, R, Julia, bibliothèque standard) avec Docker.
Créer un environnement Jupyter Lab (Python) avec Docker
[Python] Créer un environnement de développement Django avec Docker
Construire un environnement Mysql + Python avec docker
Créer un environnement Python avec WSL + Pyenv + Jupyter + VSCode
[Linux] Créer un environnement Jenkins avec Docker
Créez un environnement virtuel pour python avec pyenv
Créez un environnement Python moderne avec Neovim
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
Créez un environnement python avec ansible sur centos6
Créer un environnement de construction python3 avec Sublime Text3
Construire un environnement Python avec OSX Elcapitan
Créez rapidement un environnement Python Django avec IntelliJ
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Créer un environnement d'exécution python avec VS Code
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Essai et erreur]
Créez un environnement de développement local avec WSL + Docker Desktop pour Windows + docker-lambda + Python
Construction d'environnement virtuel avec Docker + Flask (Python) + notebook Jupyter
Création d'un environnement de travail Docker R et Python
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
Comment créer un environnement Django (python) sur Docker
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Créez un environnement de développement avec Poetry Django Docker Pycharm
Créer un environnement python3 avec ubuntu 16.04
Préparer l'environnement python3 avec Docker
Construire un environnement python avec direnv
Créer un environnement Python hors ligne
Créez un environnement d'analyse de données avec Kedro + MLflow + Github Actions
Créez un environnement de développement Django avec Docker! (Docker-compose / Django / postgreSQL / nginx)
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
Créer un environnement de développement Python basé sur GVim sur les paramètres de base de Windows 10 (2)
Créer un environnement Python et transférer des données vers le serveur
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Créez un environnement de développement Python simple avec VSCode et Docker Desktop
Créer un environnement python avec pyenv (OS X El Capitan 10.11.3)
Créer une application Todo avec Django ① Créer un environnement avec Docker
Création de l'environnement de travail Docker R et Python 2: prise en charge du japonais
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
Créer un environnement go à l'aide de Docker
Créer un fichier deb avec Docker
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Créer un environnement virtuel avec Python 3
Créez un environnement d'expérimentation / d'analyse psychologique confortable avec PsychoPy + Jupyter Notebook
Créez un environnement d'exécution Python à l'aide de GPU avec GCP Compute Engine
Créer un environnement python3 sur CentOS7
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Construction de l'environnement LaTeX et R (un peu Python) avec SublimeText3 (Windows)
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
[Mac] Créez un environnement Python 3.x à la vitesse la plus rapide à l'aide de Docker
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv