Help us understand the problem. What is going on with this article?

DockerでJupyterLabを構築する

More than 1 year has passed since last update.

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

vivivit-inc
ポートフォリオで企業と出会えるクリエイター向け就職サービスViViViTと、クリエイター支援を行っている会社です
https://www.vivivit.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした