Docker

Docker Tensorflow Jupyter Notebook

김 정출 2017. 6. 15. 14:35


Docker Tensorflow Jupyter Notebook

Docker의 nvidia-docker를 이용해 Tensorflow Container를 생성하고 Jupyter Notebook을 돌려봅시다.

 

NVIDIA Docker

NVIDIA Docker는 Server의 NVIDIA GPU Card를 지원하는 CUDA Driver를 이용해 Container에서 쉽게 이용하도록 합니다.

 

Install nvidia-docker

$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb

 

$ sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb

 

Test nvidia-smi

$ nvidia-docker run --rm nvidia/cuda nvidia-smi

 

Tensorflow Docker 실행

$ nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-devel-gpu

 

root# python

>>> import tensorflow as tf

 

Docker Container 생성 시 GPU Device 설정하기

Server 에서는 현재 4개의 Nvidia Titan X (Pascal) 가 있습니다.

NV_GPU 옵션을 통해 gpu card를 각각 할당할 수 있습니다.

NV_GPU=0 이면 0 번째 gpu card 만 사용합니다.

NV_GPU=’0,1’ 이면 0,1 번째 를 card 사용합니다.

 

$ NV_GPU=1 nvidia-docker run --rm -it --name tensorflow-gpu0 tensorflow/tensorflow:latest-devel-gpu

 

$ NV_GPU=’0,1’ nvidia-docker run --rm -it --name tensorflow-gpu01 tensorflow/tensorflow:latest-devel-gpu

 

Jupyter Notebook

$ sudo nvidia-docker run --name kjc-gpu-homework -p 8888:8888 -p 6006:6006 tensorflow/tensorflow:latest-devel-gpu

 

1. Jupyter 프로파일 생성

~/.jupyter 디렉토리가 생성되고, jupyter_notebook_config.py 파일 생성된다.

# jupyter notebook --generate-config

 

2. Jupyter 패스워드, RSA 생성

# ipython

In [1] : from IPython.lib import passwd

In [2] : passwd()

password 를 입력합니다.

Out[2] : ‘sha1: …………’

In [3] : ^D(ctrl+d)

y를 입력합니다.

 

 

3. jupyter_notebook_config.py

vi ~/.jupyter/jupyter_notebook_config.py

 

코드의 맨 밑 줄부터 다음의 라인을 추가합니다.

 

c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888

# 위에서 생성된 RSA 키를 삽입합니다.
c.NotebookApp.password = 'sha1:'

 

저장하고 jupyter 를 실행합니다.

 

$ jupyter notebook --allow-root

밑에서 8889 포트로 잡힌 것은 이미 8888 포트로 jupyter notebook이 실행 중이여서 그렇습니다.

 

http:/xxx.xxx.xxx.xxx:8888/tree?