参考サイト
- Dockerfile, docker-compose.ymlの引用元
DockerでJupyterLabを構築する - コンテナの外部からアクセスする方法
コンテナに外部からアクセス(ポートフォワード)
はじめに
JupyterLab環境をAzure上に用意して、どこからでもデータ分析できるようにしたら面白そうだなと思い、コンテナにJuyterLabを入れる検証を行いました。
コンテナ起動まで
まず、Dockerfileとdocker-compose.ymlを用意します。
1 2 3 4 5 |
% tree . ├── Dockerfile ├── JupyterLab(共有したいホストPCのフォルダ) └── docker-compose.yml |
Dockerfile
1 2 3 4 5 |
FROM jupyter/datascience-notebook RUN pip install --upgrade pip RUN pip install jupyterlab RUN jupyter serverextension enable --py jupyterlab |
DockerHubからjupyter/datascience-notebookをプルして、pipでJupyterlabを入れているだけ
次に、docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
version: "1" services: jupyterlab: build: context: . user: root ports: - "80:8888" environment: NB_UID: 500 # ← 作業するユーザーのUID GRANT_SUDO: "yes" command: start.sh jupyter lab volumes: - ./JupyterLab:/home/jovyan/work |
フォルダマウントの参考サイト:Docker-docs-ja – Compose ファイル・リファレンス
80番ポートを開けておき、コンテナが起動した時に、
コマンドが入力されるように設定します。jupyter lab
これで全ての準備が整ったのでイメージを作成からコンテナ起動まで一気に行きます。
1 2 |
% docker-compose build % docker-compose up |

ここでコンソールに出てくるtokenというやつがJupyterLabにログインする時のパスワードになります。

127.0.0.1:80からアクセスできることが確認できました。
コンテナを止める時は以下のコマンドで
1 2 3 4 |
% docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6d51deb213b7 jupyter_jupyterlab "tini -g -- start.sh…" 33 minutes ago Up 33 minutes 0.0.0.0:80->8888/tcp jupyter_jupyterlab_1 % docker stop 6d51deb213b7 |
コンテナの運用
コンテナを運用していく上でのメモを追記していきます。
ライブラリの管理
開発環境はコンテナの中で閉じているため、僕の場合はライブラリの管理もコンテナ内はホストPCの環境と別で行ています。
JupyterLabだとシェルも開けるので便利。
1 |
jovyan@623b88e646e9:~$ pip freeze > work/requirements.txt |
Leave a Reply