LoginSignup
62
64

More than 5 years have passed since last update.

DockerでJupyterLabを構築する

Last updated at Posted at 2017-02-03

image

動機

Pythonでデータ分析をする環境が欲しいだけなのに、なんちゃらenvとかやってるうちに気力が萎えてしまう

2018年03月追記
Colaboratory という素晴らしいサービスが出ております。ちょっと触るくらいなら断然こちらが簡単です!
https://colab.research.google.com/

前提

既にdockerdocker-composeが使えるようになっているとします。

手順

Dockerfile
FROM jupyter/datascience-notebook
MAINTAINER Kenta Mukai

RUN pip install jupyterlab
RUN jupyter serverextension enable --py jupyterlab

追加でインストールしたいpythonのライブラリがあれば、

RUN pip install jupyterlab

の下に書き加えてください。

notebookを置くためのdirectoryを作っておきます。

$ mkdir work

オプションが多いのでdocker-composeを書きます。

docker-compose.yml
version: "2"
services:
  jupyterlab:
    build:
      context: .
    user: root
    ports:
      - "80:8888"
    volumes:
      - "./work:/home/jovyan/work" # ← notebookをホストと共有したいためディレクトリをマウント
    environment:
      NB_UID: 500 # ← 作業するユーザーのUID 私の環境では500だったので500を指定
      GRANT_SUDO: "yes"
    command: start.sh jupyter lab

コンテナを実行します

# docker-compose build
# docker-compose up
jupyterlab_1  |     Copy/paste this URL into your browser when you connect for the first time,
jupyterlab_1  |     to login with a token:
jupyterlab_1  |         http://localhost:8888/?token=8669f6fc0b665b67a5e08017c6728976cb41558a46ce561a

コンソールにこのような出力が出るので、tokenをコピーしておきます。
ブラウザで80 portを開くと...

image

開きました。
先ほどのtokenでログインできます。

パスワードの設定

パスワードを設定するにはJupyterLab上で下記を実行して

from IPython.lib import passwd
passwd()

SHA1の文字列が得られるので

sha1:c54efc741400:0e148aaf9a0d376f86742e68f89b7a95b395c35c

この文字列を起動時に渡すようにしてやります。
こうなります。

docker-compose.yml
version: "2"
services:
  jupyterlab:
    build:
      context: .
    user: root
    ports:
      - "80:8888"
    volumes:
      - "./work:/home/jovyan/work"
    environment:
      NB_UID: 500
      GRANT_SUDO: "yes"
    command: start.sh jupyter lab --NotebookApp.password='sha1:c54efc741400:0e148aaf9a0d376f86742e68f89b7a95b395c35c'
# docker-compose up -d

これで設定したパスワードでログインできるようになりました:thumbsup:

image

使ってみる

DockerイメージのFROMであるjupyter/datascience-notebookには、 NumPyPandasなどデータ分析に関するパッケージが一通り含まれているので、すぐに使い始めることができます。どんなものが同梱されているか詳しくは最後のリンクを参照ください。

image

workディレクトリを作っておいたので、ここに既存のnotebookやCSVのデータを置くと、JupyterLabのhomeに出てきて便利です。

リンク

Jupyter Notebook Data Science Stack
https://github.com/jupyter/docker-stacks/tree/master/datascience-notebook

JupyterLab
https://github.com/jupyterlab/jupyterlab

62
64
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
62
64