Open unizard opened 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
주의: image ID와 container ID 다름..
$ sudo docker ps -a
> container ID(eb30c372a2e6)를 확인한다.
$ sudo docker start eb30c372a2e6
$ sudo docker attach eb30c372a2e6
$ (엔터한번 더치기)
$ sudo docker stop eb30c372a2e6 (다른 터미널에서...실행할 것)
$ 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: 스토리지바인딩
$ 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
https://yunsangq.github.io/articles/2017-02/caffe
[참고문헌]
https://github.com/ufoym/deepo sudo docker pull ufoym/deepo:all-py27-jupyter
ubuntu, cuda 버전을 맞춰서 이미지를 당길 방법이 없나? 없는듯? 응..아래를 보면 알겠지만 없음
개별 계정이 아닌 root 권한으로 도커를 사용하다보니 jupyter 사용시 제약(shell 사용:auto-completion)이 많았다. 개발환경 개선을 하고자 도커내부에서 개별계정을 설정하여 사용하기로 하고 아래와 같이 진행한다.
// root 암호 설정
$ passwd root
// 계정 생성
$ adduser irteam
// sudo 추가
$ sudo apt-get update
$ apt-get install vim
$ apt-get install sudo
// visudo 수정
$ visudo
// root의 profile중 일부 PATH설정을 옮겨야 한다. nvidia-smi 등의 명령어가 전혀 동작하지 않으므로..
$ vi ~/.profile
// 아래와 같이 PATH 추가, /usr/local/nvidia/bin:/usr/local/cuda/bin:
// jupyter lab 설치
// [설치doc] https://github.com/jupyterlab/jupyterlab
// [데모] https://programmers.co.kr/learn/courses/21/lessons/11041#
pip install jupyterlab
절대 개인계정 home을 공유폴더로 세팅하면 안된다. 각종 설정 숨긴파일이 없어지니까? -_-
$ sudo nvidia-docker run -it -p 8000-9000:8000-9000 --volume=/home/ykchoi:/home/irteam/ 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 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
$ sudo docker start 3cd6c39a314d
$ sudo docker attach 3cd6c39a314d
...
$ jupyter lab --no-browser --ip=0.0.0.0 --port='8888' --allow-root --NotebookApp.token= --notebook-dir='/home/irteam/nvision'
...
$ sudo docker stop 3cd6c39a314d
$ sudo apt-get install vim $ vi ~/.vimrc ... 설정은 참고...
$ source ~/.profile $ ldconfig 수행해주기..
아직 원인을 알 수 없으나, 쉘 로그인이 정상적으로 동작하지 않는거 같다?
주의사항
서버 설정은 irteam 계정을 사용한다. 기존 서버: csbg7016: 10.116.49.202
신규 서버: tsbg7010: 10.108.23.24
사전지식
ssh의 인증방식으로 public-key를 활용하면 암호를 입력하지 않고 자동으로 로그인 할 수 있다.
$ ssh-keygen -t rsa
$ vi /home/irteam/.ssh/id_rsa.pub
$ sudo vi /home/irteam/.ssh/authorized_keys
에 신규서버의 공개키를 저장한다.$ vi /etc/xinetd.d/rsync
를 통해 disable = yes를 disable = no로 변경해준다.
$ vi /etc/rsyncd.conf
에 다음과 같이 등록한다. (없으면 새로 작성하기)
$ systemctl start rsyncd.service
$ systemctl enable rsyncd.service
[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
옵션 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
Centos7 에 익숙하지 않은 개발자를 위한 문서
네이버의 개발환경인 CentOS7이 익숙하지 않다면, 그리고 연구개발 역할이 Serving을 담당하고 있지 않다면, 개발생산성 향상을 위해 아래와 같이 Docker를 활용하여 Ubuntu 환경을 설정하길 바란다.
최근 각종 딥러닝 라이브러리의 빠른 발전으로 tensorflow, pytorch등의 모든 기능을 사용하려면 ubuntu16.04의 cuda9.0이 가장 범용적이다.
하지만, 안타깝게도 이와 같은 세팅은 불과 1~2년전에 개발된 방법론들과 온전히 호환되지 않는 경우가 경우가 많다. 따라서, 개발용 도커 ubuntu16.06-cuda9.0과 테스트 도커 ubuntu 14.04-cuda8.0 를 동시에 사용하길 권장한다.
즐겨찾기
https://www.slipp.net/wiki/pages/viewpage.action?pageId=26640755