目次
概要
JupyterLab が使える Dockerfile の作り方を紹介します。
Dockerfile
内容
- ベースイメージは
ubuntu:18.04
- apt でインストールできる Python はバージョンが古いので、pyenv で Python 3.9.7 をインストールする
- pip で
requirements.txt
に記載された Python のライブラリをインストールする - JupyterLab の以下の拡張をインストールする
- ipywidgets: ノートブック上で使える GUI ウィジェット
- ryantam626/jupyterlab_code_formatter: コードの整形
- Tabnine: コードの入力補完
コンテナのビルド、作成方法
ソースは pystyle/docker/jupyterlab になります。
- Dockerfile をダウンロードします。
requirements.txt
にある Python ライブラリがpip
でインストールされるので、使いたいライブラリがある場合は適宜編集してください
- Dockerfile があるディレクトリ上で
docker-compose build
を実行し、コンテナをビルドします。 docker-compose up -d
でバックグラウンドでコンテナを起動します。- ブラウザで
<Docker が起動しているマシンのホスト>:8888/
にアクセスすると、JupyterLab が使用できます。
Dockerfile の中身解説
docker/jupyterlab/Dockerfile の中身について解説します。
1. 環境変数を定義する
2. 必要なライブラリをインストールする
2. pyenv で Python をインストールする
apt-get install python3
でインストールされる Python はバージョンが 3.6 と古いので、pyenv を使用して Python 3.9.7 をインストールします。
3. Python のライブラリをインストールする
- JupyterLab のホームディレクトリは
/notebook
にします。 cat requirements.txt | xargs -n 1 pip install -U --no-cache-dir
でrequirements.txt
に記載されているライブラリを上から順番にインストールします。pip -r requirements.txt
としない理由は、まず最初にpip
をアップグレードし、wheel
など他のライブラリをインストールをする際に必要となるライブラリを先にインストールするためです。COPY jupyter_lab_config.py /root/.jupyter/
で JupyterLab の設定ファイルjupyter_lab_config.py
をコンテナにコピーします。
以下のライブラリがインストールされます。
- 他のライブラリのインストールに必要なライブラリ
- pip
- wheel
- JupyterLab の拡張機能及びその依存ライブラリ
- jupyterlab: JupyterLab 本体
- ipywidgets: ノートブック上で使える GUI ウィジェット
- jupyterlab_tabnine: コードの入力補完
- jupyterlab_code_formatter: コードの整形
- black: jupyterlab_code_formatter で使用
- isort: jupyterlab_code_formatter で使用
- データサイエンス系のライブラリ (ここは好みで変えてください)
- beautifulsoup4: HTML、XMLパーサー
- lxml: HTML、XMLパーサー
- matplotlib: グラフ作成
- more-itertools: 標準ライブラリの itertools の拡張
- networkx: グラフ
- numpy: 数値計算
- opencv-contrib-python: 画像処理
- openpyxl: Excel ファイルの処理
- pandas: 表計算
- pillow: 画像処理
- pyyaml: yaml パーサー
- requests: HTTPライブラリ
- scikit-image: 画像処理
- scikit-learn: 機械学習
- scipy: 数値計算
- seaborn: グラフ作成
- statsmodels: 統計処理
- sympy: 数値計算
- tabulate: 表作成
- tqdm: 進捗表示
4. ポート及びコマンド
- デフォルトでは
8888 (ホスト側) -> 8888 (コンテナ側)
にポートフォーワーディングされます。- 変更したい場合は、
docker-compose.yml
の ports を変更してください。 - 例:
30000 (ホスト側) -> 8888 (コンテナ側)
にするには、30000:8888
- 変更したい場合は、
eval "$(pyenv init --path)"
で pyenv の Python 環境を有効にして、jupyter lab
で JupyterLab を起動しています。
Pytorch 用の Dockerfile
ディープラーニングライブラリの Pytorch 用の Dockerfile も用意しました。 上記との違いは、以下になります。
- ベースイメージを
nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04
に変更 - torch、torchvision、torchaudio を追加
実行には以下の環境が必要です。
- Nvidia 製の GPU
- Nvidia Driver 440.33 以上
- docker-compose 1.28.0 以上
ソースは pystyle/docker/jupyterlab_dl になります。
- Dockerfile をダウンロードします。
- Dockerfile があるディレクトリ上で
docker-compose build
を実行し、コンテナをビルドします。 docker-compose up -d
でバックグラウンドでコンテナを起動します。- ブラウザで
<Docker が起動しているマシンのホスト>:8888/
にアクセスすると、JupyterLab が使用できます。
コメント