unizard / Env

0 stars 0 forks source link

DeepLearning Docker, Jupyter, DIGIT 환경 설정 #1

Open unizard opened 6 years ago

unizard commented 6 years ago

Centos7 에 익숙하지 않은 개발자를 위한 문서

즐겨찾기

https://www.slipp.net/wiki/pages/viewpage.action?pageId=26640755

unizard commented 6 years ago

도커 설치

아래의 쉘을 실행한다. https://oss.navercorp.com/VisionOR/AwesomeManuals/blob/master/setup-nocert.sh

docker 이미지 관리를 위한 환경설정, docker 설치

딥러닝 도커이미지 다운로드 & 도커 컨테이너 생성 & 주피터 실행


$ sudo docker pull ufoym/deepo:all-py27-jupyter
$ nvidia-docker run -it -p 8888:8888 --volume=/home/ykchoi:/home/ykchoi/ ufoym/deepo:all-py27- jupyter 
$ jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/home/ykchoi/'

아이피를 알아내기 위해서는 $ hostname -I
browse: xxx.xxx.xxx.xxx:8888

NVidia-docker 설치

도커 시작하기

주의: image ID와 container ID 다름..


$ sudo docker ps -a
> container ID(eb30c372a2e6)를 확인한다.

$ sudo docker start eb30c372a2e6
$ sudo docker attach eb30c372a2e6 
$ (엔터한번 더치기)

$ sudo docker stop eb30c372a2e6  (다른 터미널에서...실행할 것)

image

하나의 도커 컨테이너에 여러 터미널 열기


$ sudo docker exec -it eb30c372a2e6 bash

멀티포트바인딩

여러개의 도커를 띄울 때는 포트바인딩이 겹치지 않도록 조심한다. $ sudo nvidia-docker run -it -p 8000-9000:8000-9000 --volume=/home/ykchoi:/home/ykchoi/ ufoym/deepo:all-py27-jupyter -p: 포트바인딩 - volume: 스토리지바인딩

생성된 컨테이너의 새로운 포트 바인딩은 가능한가? 불가능하다.

기존 컨테이너 새로 만들어 시작하기 (commit)

$ docker stop 27fb088aa237
$ sudo docker commit 27fb088aa237 caffe-py27-digit-jupyterlab
$ sudo nvidia-docker run -it -p 8000-9000:8000-9000 --volume=/home/ykchoi:/home/irteam/nvision caffe-py27-digit-jupyterlab
$ sudo docker ps // 해당 명령을 통해 새롭게 만들어진 컨테이너의  ID를 확인
$ sudo docker start 3cd6c39a314d
$ sudo docker attach 3cd6c39a314d

caffe 설치

https://yunsangq.github.io/articles/2017-02/caffe

[참고문헌]

unizard commented 6 years ago

ufoym/deepo 과 기존 딥러닝 도커 비교

https://github.com/ufoym/deepo sudo docker pull ufoym/deepo:all-py27-jupyter

ubuntu, cuda 버전을 맞춰서 이미지를 당길 방법이 없나? 없는듯? 응..아래를 보면 알겠지만 없음

image

unizard commented 6 years ago

[Tip#1] 개발 환경 변경 (root => irteam)

[Tip#2] Jupyter Lab 사용 권장

[Tip#3] Host<->docker container 공유 폴더 설정시 주의 점

unizard commented 6 years ago

JupyterLab terminal

세팅

$ sudo apt-get install vim $ vi ~/.vimrc ... 설정은 참고...

터미널을 열면,

$ source ~/.profile $ ldconfig 수행해주기..

아직 원인을 알 수 없으나, 쉘 로그인이 정상적으로 동작하지 않는거 같다?

unizard commented 6 years ago

기존 서버 => 신규 서버 데이터 이동

주의사항

서버 설정은 irteam 계정을 사용한다. 기존 서버: csbg7016: 10.116.49.202
신규 서버: tsbg7010: 10.108.23.24

사전지식

ssh의 인증방식으로 public-key를 활용하면 암호를 입력하지 않고 자동으로 로그인 할 수 있다.

  1. 신규 서버 ssh key 생성 (ssh-keygen)
    • $ ssh-keygen -t rsa
    • 신규 서버의 공개키는 아래에 저장된다. 확인은 $ vi /home/irteam/.ssh/id_rsa.pub
  2. 기존 서버에 신규 서버의 ssh 키 추가
    • $ sudo vi /home/irteam/.ssh/authorized_keys 에 신규서버의 공개키를 저장한다.
    • 신규 서버에서 기존 서버에 로그인 없이 접근 가능하다. 쌍방으로 주고받으려면, 양쪽 모두에 공개키를 이식할 것!
  3. rsync 설정
    • sudo yum install rsync
    • $ vi /etc/xinetd.d/rsync 를 통해 disable = yes를 disable = no로 변경해준다. image
    • $ vi /etc/rsyncd.conf 에 다음과 같이 등록한다. (없으면 새로 작성하기)
      • 접속 alias 및 서버를 설정한다. (alias 를 꼭 기억해야 한다.) image
      • 참고) tsbg7010 서버 캡쳐 image
    • $ systemctl start rsyncd.service
    • $ systemctl enable rsyncd.service
  4. 기존 서버에서 신규 서버로 rsync 파일
    • 데이터 수신법 테스트 [irteam@tsbg7010 ykchoi]$ rsync -arv irteam@10.116.49.202::R/home1/irteam/test2.txt /home1/irteam/
    • 데이터 송신 테스트 [irteam@csbg7016 ykchoi]$ rsync -arv /home1/irteam/test2.txt irteam@10.108.23.24::R/home1/ykchoi

사용법 rsync -avz ::<alias이름>/경로

옵션 v : 동기화 상세정보(진행사항)를 보여준다. (verbose) r : 지정한 디렉토리의 하위 디렉토리까지 재귀적으로 실행한다. (recursive) p : 퍼미션 정보를 보존한다. (perms) z : 데이터 압축 전송한다. (compress) u : 새로운 파일을 덮어쓰지 않는다. (update) b : 이미 파일이 존재하는 경우 오래된 파일은 ~가 붙는다.

한줄요약

(수신) $ rsync -arv irteam@10.116.49.202::R/home1/irteam/test2.txt /home1/irteam/ (송신) $ rsync -arv /home1/irteam/test2.txt irteam@10.108.23.24::R/home1/ykchoi

Reference

http://www.i-swear.com/747