Notice
Recent Posts
Recent Comments
Today
Total
04-30 08:58
Archives
관리 메뉴

Jeongchul Kim

Docker Tensorflow Jupyter Notebook 본문

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?



'Docker' 카테고리의 다른 글

Docker network 네트워크  (2) 2019.07.26
Docker run 명령어 in AWS EC2  (0) 2018.11.21
Docker AWS EC2 설치  (3) 2018.11.20
Google Cloud with Docker  (0) 2018.03.06
An Updated Performance Comparison of Virtual Machines and Linux Containers  (0) 2017.07.07
Comments