JupyterLabのコンテナ環境をつくる
ローカルのWindows PC上Dockerにて、JupyterLabのコンテナ環境を作成します。コンテナはdocker composeにて管理します。公式の参考サイト。
JupyterLabについて
JupyterLabとは、Jupyter Notebookの後継ツールとのことです。
JupyterLab will eventually replace the classic Jupyter Notebook. Throughout this transition, the same notebook document format will be supported by both the classic Notebook and JupyterLab.
環境
- Windows10 Pro 10.0.18362 N/A ビルド 18362
- VirtualBox 6.1
- docker toolbox v19.03.1
- Docker 19.03.5
- docker-compose 1.24.1
- JupyterLab 1.2.1
各設定ファイルの用意
docker-composeで起動するための各ファイルを用意します。
Dockerfile
FROM jupyter/datascience-notebook:7a0c7325e470 COPY requirements.txt /tmp/requirements.txt RUN pip install -r /tmp/requirements.txt
公式のコンテナイメージが用意されています。
Jupyter Docker Stacks - Selecting an Image
jupyter/datascience-notebook
は、データ分析用の各言語向けライブラリがビルドインされたイメージです。
jupyter/datascience-notebook includes libraries for data analysis from the Julia, Python, and R communities.
requirements.txt
boto3 == 1.10.50 s3fs == 0.4.0
追加でインストールしたいモジュールを定義。AWSを利用するための boto3
と、S3にアクセスするための s3fs
をインストールします。
docker-compose.yml
version: "3.7" services: jupyterlab: build: . container_name: jupyterlab environment: - JUPYTER_ENABLE_LAB=yes - AWS_ACCESS_KEY_ID=AKIXXXXXXXXXXXXXXXXXX - AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXX ports: - "8888:8888" volumes: - /c/Users/zunda/Desktop/volume:/home/jovyan/work command: start.sh jupyter lab --NotebookApp.token=''
必要なオプションを設定。
JUPYTER_ENABLE_LAB=yes
にて、JupyterLabが有効になります- AWSのクレデンシャル情報を設定
- ローカルPCのDesktopをボリュームマウント
NotebookApp.token=''
を付与してJupyterLab起動することで、ログイン時のtoken入力を不要とします
environmentsで設定可能なオプションは、下記ドキュメントにて確認できます。
起動
起動します。
> docker-compose up ... jupyterlab | Executing the command: jupyter lab --NotebookApp.token= jupyterlab | [I 21:22:37.927 LabApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret jupyterlab | [W 21:22:38.156 LabApp] All authentication is disabled. Anyone who can connect to this server will be able to run code. jupyterlab | [I 21:22:39.360 LabApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab jupyterlab | [I 21:22:39.360 LabApp] JupyterLab application directory is /opt/conda/share/jupyter/lab jupyterlab | [I 21:22:40.547 LabApp] Serving notebooks from local directory: /home/jovyan jupyterlab | [I 21:22:40.547 LabApp] The Jupyter Notebook is running at: jupyterlab | [I 21:22:40.547 LabApp] http://399c4ecf2bdd:8888/ jupyterlab | [I 21:22:40.547 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
http://(docker-machineのIPアドレス):8888
で、JupyterLabにアクセスできます。
動作確認
ちゃんと動きますね。