やりたいこと
docker 上で Ubuntu に Jupyterlab をインストールして 自分好みの機械学習環境を手に入れる
- Windows10のdocker上に構築する
- docker上のUbuntuでJupyterlabを動かす
- Pythonおよびライブラリを使う
- Jupyterlabの拡張機能(Extension Manager)を使えるようにする
- ホストOS(Win10)のブラウザからJupyterlabを操作できるようにする
- ホストOSのフォルダと同期
- 日本語名ファイル、フォルダを表示可能にする
- ホストOS起動時にJupterlabが自動起動させる
環境
- ホストOS:Windows10 Pro
- Docker desktop:2.1.0.3(38240)
- Docker Engine:19.03.2
- Ubuntu:18.04.3 LTS (Bionic Beaver)
- Jupyterlab:1.1.4
- python:18.04.3 LTS (Bionic Beaver)
前提
- Windows10にDockerがインストールされていること
- Dockerコンテナの起動、停止可能な程度の操作ができること
手順
- Ubuntu を Pull する
- Dockerファイルの作成
- imageの作成
- コンテナの作成
- Jupyterlabへアクセス
- Jupyterlabの拡張機能追加
内容
1. Ubuntu を Pull する
Windows PowerShellを起動してDockerからUbuntuイメージをPullする。
> docker pull ubuntu
正しくpullできたか imageコマンドで確認
> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 2ca708c1c9cc 3 weeks ago 64.2MB
2. Dockerファイルの作成
任意の場所にDockerファイル(ファイル名 拡張子なし:dockerfile)を作成します。
FROM ubuntu
RUN apt-get update
RUN apt-get install -y sudo
RUN sudo apt install -y python3-pip
RUN sudo apt install -y nodejs npm
RUN sudo apt install -y language-pack-ja
RUN sudo update-locale LANG=ja_JP.UTF-8
RUN pip3 install jupyterlab
RUN pip3 install pandas
RUN pip3 install matplotlib
RUN pip3 install sklearn
nodejs npm はJupyterlabの拡張機能を使用するのに必要です。
Language-pack-ja はフォルダ、ファイル名で日本語を扱う場合に必要です。
pandasなどのライブラリを必要に応じて追加してください。
3. imageの作成
作成した Dockerfile からdocker image を作成するため、
DockerFileのあるフォルダへ PowerShell のカレントフォルダを移動し、
docker buildコマンドを実行します。
docker build -t myjupyterlab:latest ./
書式(一部):docker build [オプション] 作成するコンテナ名[:タグ名] dockerfileのパス
オプション | 内容 |
---|---|
-t | 作成するコンテナ名[:タグ名] 形式でimage名をタグ名を設定します。 |
4. コンテナの作成
Dockerのrunコマンドを実行してコンテナを作成します。
> docker run -e LANG=ja_JP.UTF-8 -it -p 8888:8888 -v C:/Users/xxx/Documents/jupyterNotebook:/home/jovyan/work myjupyterlab jupyter lab --allow-root --ip=0.0.0.0 --no-browser
書式(一部):docker run [オプション] [image名] [コンテナ内の実行コマンドとその引数]
オプション | 内容 |
---|---|
-e | 環境変数を設定します。ここでは言語に日本語を設定しています。 |
-it | -i と -t のこと |
-i | 接続されていなくてもSTDIN(標準入力)を開いたままにします |
-t | 擬似TTYを割り当てる |
-p | コンテナのポートをホストに公開します。 hostポート:コンテナポート |
-v | ホストのフォルダをコンテナへマウントします。 hostフォルダ:コンテナフォルダ |
これだけだと、ホストOSを再起動した際にコンテナが自動起動されないので、以下のコマンドを打っておきます。
docker update --restart=always コンテナ名
5. Jupyterlabへアクセス
ホストOSのブラウザを起動し、 "http://localhost:8888" で、jupyterlabへアクセスできることを確認します。
6. Jupyterlabの拡張機能追加
無事にアクセスできたら、Jupyterlabの拡張機能を有効にします。
[Settings] - [Enable Extension Manager(experimental)] にチェックを入れます。
すると左側にパズルピースアイコンが追加されます。
それを選択し、検索ボックスにインストールしたい拡張モジュール名をを入れると検索されます。"Install" をクリックすることでインストールされます。
おすすめの 拡張機能は、
Qiita : JupyterLabのおすすめ拡張機能7選
を参考にしてください。