LoginSignup
5
9

More than 3 years have passed since last update.

docker 上で Ubuntu に Jupyterlab をインストールして 自分好みの機械学習環境を手に入れる

Last updated at Posted at 2019-10-13

やりたいこと

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コンテナの起動、停止可能な程度の操作ができること

手順

  1. Ubuntu を Pull する
  2. Dockerファイルの作成
  3. imageの作成
  4. コンテナの作成
  5. Jupyterlabへアクセス
  6. 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)] にチェックを入れます。
すると左側にパズルピースアイコンが追加されます。
image.png
それを選択し、検索ボックスにインストールしたい拡張モジュール名をを入れると検索されます。"Install" をクリックすることでインストールされます。

おすすめの 拡張機能は、
Qiita : JupyterLabのおすすめ拡張機能7選
を参考にしてください。

5
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9