Docker で拡張機能を使える Jupyter 環境を立ち上げよう
tech docker jupyter
Lastmod: 2020-11-14

色々方法はあるけど,シンプルに行こうぜ. 本当は jupyterLab に移行したいところだけど,まだ拡張機能があんましないので,今まで通りjupyter notebookで.

これまでのあらすじ

作業は突然,中断させられる

部屋で作業をしていると,家族の叫び声により息子の宿題を見るために部屋の移動を余儀なくされる hadacchi であった. うっかりローカル環境でコーディングしようものなら,作業中断は必至. しかしそこは,サーバで作業をしていれば問題ないのであった.

準備

dockerとdocker-composeが使えるようにしておく.

やること

そうしたら,たったこれだけ用意すればできる.

jupyter/
  |
  +-- docker-compose.yml
  |
  +-- jupyter-build-dir/
  |     |
  |     +-- Dockerfile
  |
  +-- work/

Dockerfile

FROM jupyter/scipy-notebook

RUN pip install --upgrade pip
RUN pip install jupyter_contrib_nbextensions
RUN jupyter contrib nbextension install --user
# ここから下はお好みで
RUN jupyter nbextension enable codefolding/main
RUN jupyter nbextension enable code_prettify/code_prettify
RUN jupyter nbextension enable collapsible_headings/main
RUN jupyter nbextension enable init_cell/main
RUN jupyter nbextension enable toc2/main
RUN jupyter nbextension enable zenmode/main

docker-compose.yml

version: "3"
services:
    jupyter:
        build: jupyter-build-dir
        ports:
            - 8888:8888
        volumes:
            - ./work:/home/jovyan/work
        environment:
            - TZ=Asia/Tokyo
        command: start-notebook.sh

command

cd jupyter
docker-compose build
docker-compose up -d
docker-compose logs

ログ出力

ここからtokenを拾って,当該ホストへアクセスすれば使える.

jupyter_1  | Executing the command: jupyter notebook
jupyter_1  | [I 20:41:54.261 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
jupyter_1  | [I 20:41:54.570 NotebookApp] [jupyter_nbextensions_configurator] enabled 0.4.1
jupyter_1  | [I 20:41:55.065 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.8/site-packages/jupyterlab
jupyter_1  | [I 20:41:55.065 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
jupyter_1  | [I 20:41:55.069 NotebookApp] Serving notebooks from local directory: /home/jovyan
jupyter_1  | [I 20:41:55.069 NotebookApp] Jupyter Notebook 6.1.4 is running at:
jupyter_1  | [I 20:41:55.069 NotebookApp] http://2198beb3f6f4:8888/?token=1fc8364f81e580e5facb16442a256c1736ef68768842a497
jupyter_1  | [I 20:41:55.069 NotebookApp]  or http://127.0.0.1:8888/?token=1fc8364f81e580e5facb16442a256c1736ef68768842a497
jupyter_1  | [I 20:41:55.069 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
comments powered by Disqus