目次
docker-composeとJupyterLabの重要性とその組み合わせの利点
近年、データ分析や機械学習の分野でPythonが広く使われています。その中でJupyterLabは、その強力な機能と柔軟性から多くの人々に支持されています。しかし環境構築は面倒な作業になることもあります。そこで今回はDockerを用いて手軽にJupyterLab環境を構築する方法をご紹介します。
本記事で構築できる環境の特徴
Dockerを使用して、以下の特徴を持つ機械学習用のJupyterLab環境を構築することができます。
Dockerを活用したJupyterLab環境の構築は、機械学習エンジニアにとって有用なスキルと言えるでしょう。この記事では、以下からその手順を詳しく解説します。ご興味のある方はぜひ参考にしてみてください。
ステップ1:必要なソフトウェアとツールのインストール
Docker Hubログイン後Docker Desktopのインストール。
今回はDocker Official Imagesのpythonを使用。
ステップ2:Dockerfileとdocker-compose.ymlファイルの作成
Dockerfileという名前のテキストファイルを任意のディレクトリに作成します。作成後、以下を参考に必要な設定を記載します。
必要に応じて、FROMに記載されているDockerイメージを変更します。
| Dockerイメージ | 設定内容 |
|---|---|
| Python3 | python:3 |
| Python2 | python:2 |
Python3の場合のDockerfileは以下になります。
Dockerfile3
FROM python:3
USER root
WORKDIR /usr/src/app
ENV DEBIAN_FRONTEND noninteractive
# 必要なパッケージを記載
RUN apt-get update && apt-get install --no-install-recommends -y \
curl && \
apt clean
# 必要なPythonパッケージを記載
RUN python -m pip install --upgrade pip && pip install \
numpy \
scipy \
matplotlib \
ipython \
scikit-learn \
pandas \
pillow \
mglearn \
requests \
pyperclip \
beautifulsoup4 \
jupyterlab
RUN jupyter serverextension enable --py jupyterlab
ENV DEBIAN_FRONTEND dialogdocker-compose.yml
以下の内容のdocker-composeファイルをDockerfileと同じディレクトリに格納します
| 設定項目 | 設定内容 |
|---|---|
| ホスト側共有フォルダ | /Users/User_Name/Docker/JupyterLab/codes |
| コンテナ側共有フォルダ | /home/JupyterLab/codes |
| JupyterLabログイン用パスワード | NotebookApp.token=○○○ |
| JupyterLabホームディレクトリ | NotebookApp.notebook_dir=’/home/JupyterLab/codes’ |
| Dockerコンテナ名 | jupyterlab |
version: '3'
services:
jupyterlab:
build:
context: .
dockerfile: "Dockerfile"
user: root
volumes:
- jupyterlab-dir:/home/JupyterLab/codes
ports:
- "8888:8888"
environment:
TZ: Asia/Tokyo
command:
jupyter lab
--ip=0.0.0.0
--allow-root
--no-browser
--NotebookApp.notebook_dir='/home/JupyterLab/codes'
--NotebookApp.token='○○○'
volumes:
jupyterlab-dir:
driver_opts:
type: none
device: /Users/MacBookLover/Docker/JupyterLab/codes
o: bind「NotebookApp.token=’○○○’」にはJupyterLabにアクセスするためのパスワードを設定します。4
ステップ3:Dockerイメージビルド
以下のコマンドでイメージをビルドします
docker-compose build以下のコマンドでイメージを確認
docker image lsjupyterlabというイメージが表示されていたら大丈夫です
ステップ4:Dockerコンテナを起動
JupyterLabを使うときは、以下のコマンドで起動します
docker-compose up停止するときは、ターミナル上でcontrol+c
ステップ5:JupyterLabへアクセス
以下のURLにアクセスし、パスワードを入力するとJupyterLab画面が表示されます。
JupyterLab上で作成したコードは(ipynbファイルなど)は、ホスト側共有フォルダに出力されているため、コンテナを削除しても作成したコードは削除されません。
改訂版 Pythonユーザのための Jupyter[実践]入門
注釈
- Python2は2020年1月1日にサポート終了 ↩︎
- docker runで長いオプションをつけるのではなく、設定ファイル(Dockerfileやdocker-compose.yml)に記載し、docker-compose upだけで簡単起動 ↩︎
- 「Dockerfile のベストプラクティス」によれば、RUN apt-get upgrade や dist-upgrade の実行は避ける。1文でapt-GETを書くことによりapt-get update のキャッシュ・バスティングが働いて、確実に新バージョンがインストールされるようになります ↩︎
- 平文ではなく、ハッシュ化されたパスワードを記載するときは、「–NotebookApp.token=’○○○’」を「–NotebookApp.password=’sha1:○○○’」へ変更してください ↩︎


