過去ページ JupyterNotebook20210117

実装方法はいろいろあるようで、ここではcudaが使える docker の上に JupyterNotebook を動かしてみる

cuda可能なdockerはdockerを参照の事

jupyter/datascience-notebook

参照先https://qiita.com/hgaiji/items/edf71435d0565257f980

使用するイメージはhttps://hub.docker.com/r/jupyter/datascience-notebookから

[illya@s ~]$ mkdir datascience-notebook
[illya@s ~]$ cd datascience-notebook/
 
[illya@s tensorflow-notebook]$ vi docker-compose.yml
version: "3"
services:
  notebook:
    image: jupyter/datascience-notebook
    ports:
      - "8888:8888"
    environment:
      - JUPYTER_ENABLE_LAB=yes
    volumes:
      - ./work:/home/jovyan/work
    command: start-notebook.sh --NotebookApp.token=''
 
[illya@s datascience-notebook]$
[illya@s datascience-notebook]$ mkdir work

っで起動させる

[illya@s datascience-notebook]$ docker-compose up -d
 :
7d5043dea6f3: Pull complete
Digest: sha256:ebd4f585584e5c23a6e338da699eb092b046af6837f097c3d55ec73019821822
Status: Downloaded newer image for jupyter/datascience-notebook:latest
Creating tensorflow-notebook_notebook_1 ... done
 
[illya@s datascience-notebook]$

この後、このサイトの8888にwebアクセスすると下記のように表示される
2021y01m18d_200951177.png

停止するには

[illya@s datascience-notebook]$ docker-compose down
Stopping tensorflow-notebook_notebook_1 ... done
Removing tensorflow-notebook_notebook_1 ... done
Removing network tensorflow-notebook_default
 
[illya@s datascience-notebook]$
[illya@s datascience-notebook]$
[illya@s datascience-notebook]$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
 
[illya@s tensorflow-notebook]$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
 
[illya@s datascience-notebook]$ 
[illya@s datascience-notebook]$ docker images
REPOSITORY                     TAG                   IMAGE ID       CREATED        SIZE
jupyter/datascience-notebook   latest                d1b0d1df88ad   17 hours ago   4.02GB
nvidia/cuda                    11.2.0-base-centos7   c178fff98309   4 days ago     332MB
 
[illya@s datascience-notebook]$

tensorflow

tensorflowが使えて、しかもGPUが有効でJupyterNotebookも有効なのを探していて見つけた
https://hub.docker.com/layers/tensorflow/tensorflow/2.4.1-gpu-jupyter/images/sha256-c3b4e83edf14b282902c80e0ef245115736ce4c91eabc39c93f51ca56508e504?context=explore

tensorflow/tensorflow:2.4.1-gpu-jupyter

「tensorflow-gpu」フォルダを作ってそこに Dockerfile を作る

[illya@e ~]$ mkdir tensorflow-gpu
[illya@e ~]$ cd tensorflow-gpu/
 
[illya@e tensorflow-gpu]$ vi Dockerfile
FROM tensorflow/tensorflow:2.4.1-gpu-jupyter
 
RUN pip install --upgrade pip
RUN apt-get update -y
 
RUN pip install torch torchvision keras scikit-learn janome matplotlib
RUN pip install tensorflow-io tensorflow-addons adabelief-tf==0.1.0
RUN pip install jupyterlab
 
[illya@e tensorflow-gpu]$

次に docker-compose.yml を用意します

[illya@e tensorflow-gpu]$ vi docker-compose.yml
version: "3"
services:
   chaperon:
    build:
        context: .
        dockerfile: Dockerfile
    ports:
      - 8888:8888
      - 6006:6006
    environment:
      - JUPYTER_ENABLE_LAB=yes
      - NVIDIA_VISIBLE_DEVICES=all
    volumes:
      - /home/illya/tensorflow-gpu/work:/tf
 
[illya@e tensorflow-gpu]$

2つのファイルを作って、まずは「docker-compose up」でフォアグランドで立ち上げます

[illya@e tensorflow-gpu]$ docker-compose up

jupyter notebook向けのtoken idが表示されますのでそれをコピーして起動したマシンの8888ポートにアクセスして
tokenと新規のパスワードを記入します。その後、docker-composeをCtrl-Cで止めて次に「docker-compose up -d」で
バックグラウンドで起動させます

jupyter/tensorflow-notebook

参照先 https://qiita.com/y-vectorfield/items/6f2989baeb388be48448

計算機本体にはcuda-11.2がインストール済み.
dockerイメージとなる「jupyter/tensorflow-notebook」にはcudaが入っていない.
目下 telsorflow は11.1まで対応のようで、ここではもうひとつ手前の「CUDA Toolkit 11.0 Update1」を入れる

「docker build」の最中にvolume mountは使えないようなので必要なファイルはweb経由で取れるようにする.
オリジナルのサイトで何度の取得するのは迷惑なので、既に手元にあるなら近くのwebサービスに載せて取らせるようにしてみた.

ここでは

  • cuda-ubuntu2004.pin
  • cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb
  • cudnn-11.0-linux-x64-v8.0.5.39.tgz

の3種を事前に取得して、近くのwebサービスに載せている.

[illya@e ~]$ mkdir tensorflow-notebook
[illya@e ~]$ cd tensorflow-notebook
 
[illya@e tensorflow-notebook]$ vi Dockerfile
FROM jupyter/tensorflow-notebook
USER root
RUN apt-get update
RUN apt-get -y install gnupg2
 
# cuda-11.0
RUN wget http://192.168.0.3/cuda-ubuntu2004.pin
 
RUN mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
 
RUN wget http://192.168.0.3/cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb
 
RUN dpkg -i cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb
RUN apt-key add /var/cuda-repo-ubuntu2004-11-0-local/7fa2af80.pub
RUN rm cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb
 
RUN apt-get update
RUN apt-get -y install cuda
 
# install cudnn
RUN wget http://192.168.0.3/cudnn-11.0-linux-x64-v8.0.5.39.tgz
 
RUN tar xzvf cudnn-11.0-linux-x64-v8.0.5.39.tgz -C /usr/local
RUN rm cudnn-11.0-linux-x64-v8.0.5.39.tgz
 
ENV PATH=/usr/local/cuda-11.0/bin:$PATH
ENV CPATH=/usr/local/cuda-11.0/include:$CPATH
ENV LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LIBRARY_PATH
RUN pip install pycuda
RUN pip install torch torchvision keras scikit-learn janome
RUN pip install tensorflow-io tensorflow-addons adabelief-tf==0.1.0
RUN apt install -y build-essential curl wget vim git bash-completion
 
 
[illya@e tensorflow-notebook]$ vi docker-compose.yml
version: '3.5'
 
services:
    rc-notebook:
        build:
            context: .
            dockerfile: Dockerfile
        runtime: nvidia
        environment:
            - NVIDIA_VISIBLE_DEVICES=all
            - NVIDIA_DRIVER_CAPABILITIES=all
        ports:
            - 8888:8888
            - 6006:6006
        volumes:
            - /work:/home/jovyan/work
        restart: always
 
[illya@e tensorflow-notebook]$

以上のように「Dokcerfile」と「docker-compose.yml」を用意して起動してみる
始めは「docker-compose up」で行い標準出力を眺める.

[illya@e tensorflow-notebook]$ docker-compose up
 :
 :
 :
chaperone-notebook_1  |     Or copy and paste one of these URLs:
chaperone-notebook_1  |         http://27f21d8fd674:8888/?token=9c6eb81504ac92e776e66d698032b511ce8464386af590c1
chaperone-notebook_1  |      or http://127.0.0.1:8888/?token=9c6eb81504ac92e776e66d698032b511ce8464386af590c1

上記のような段階まで進んだら、ブラウザで稼働マシンの 8888 ポートをブラウザで開き、内容に従って表記されている
トークン「9c6eb81504ac92e776e66d698032b511ce8464386af590c1」と登録するパスワードを入力します

その後一旦「docker-compose up」を「Crtl-c」で終了させ、その後に「docker-compose up -d」とデーモンで起動させる

[illya@e tensorflow-notebook]$ docker-compose up -d

再度ブラウザで稼働マシンの 8888 ポートを叩き、登録したパスワードでログインします


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-09-05 (日) 08:27:05 (635d)