일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 여객선
- Thread
- 인스피론
- 영상처리
- 환경변수
- SetThreadAffinityMask
- Jetson Nano
- 가벼워
- inspiron 15 7590
- 사용자매크로
- MFC
- VisualStudio
- Today
- Total
MuTa
Ubuntu server 18.04 + 개인용 머신러닝 서버 운영 본문
할것 : 1. 원격 머신러닝 쥬피터 노트북 제공
2. 원격 MS CODE 웹 앱 서비스 제공
조건 : PC + nvidia 그래픽 카드 ( 6.1 이상을 쓰기 위해 기본 케플러 칩셋 이상 이면 좋음 1060 ~)
GDDR 많이 있는 것일 수록 편리함
포트포워딩을 지원하고 DDNS를 지원하는 공유기
0. USB 로 iso 파일 다운 받아 rufus 로 부트 USB 제작 그리고 설치
https://www.manualfactory.net/10853
- 암호 비번 설정
1. SSH 오픈 (원격으로 기본 제어 하기 위해 )
1-1 . ssh 설치
sudo apt-get install ssh
1-2 . 설정 수정
sudo vi /etc/ssh/sshd_config
- 아무것도 안나온다면 서버 실행 / 종료 수행 후 재시도
- 포트 번호값 변경 저장 중요 (기본 22번 포트는 보안상 변경 하는것이 좋다)
- ssh key 활성화
- 저장은 esc -> :wq
1-3. sudo service ssh start
- 변경 포트 확인
- netstat -al //모든 리슨 확인
1-4. 포트포워딩 및 DDNS 설정 확인 ( 제조사 마다 다름)
- 시놀로지 라우터 를 쓰기때문에 편리하게 GUI 로 간단하게 설정 가능
- 포트포워딩으로 1-2 에서 설정한 포트 번호 매칭
1-5 외부에서 접속 test
- putty 를 사용 하거나 MS Code 의 터미널을 사용 하거나/ git 설치 했으면 ssh명령어가 아마 등록 되어 있음
- ssh 아이디@DDNS주소 -p 포트번호
- 아이디 비번 입력 해서 접속 성공
- 실패시 1 단계 과정에서 뭔가 문제가 있는 것 확인 필요함
2. Nvidia 드라이버 설치
https://hiseon.me/linux/ubuntu/install_nvidia_driver/
2-1. sudo apt-get update && apt-get install -y dialog language-pack-en
가 권한 에러 나서
sudo apt-get update
sudo apt-get install -y dialog language-pack-en 로 진행 함
2-2. sudo apt-get install nvidia-driver-440
지원 가능한 드라이버 검색 해보고 설치 진행
sudo apt-get install dkms nvidia-modprobe
이후 재시작
sudo reboot
2-3. 버전확인
nvidia-smi
2-4. 추가 사항(쿠다 툴킷 설치)
sudo apt-get install nvidia-cuda-toolkit
3. Docker 설치
https://hiseon.me/linux/ubuntu/install-docker/
3-1. Docker ce 설치
3-2. nvidia-docker2 설치
sudo apt-get install -y nvidia-docker2
3-3. docker 재 시작
3-4. sudo usermod -aG docker $USER 도커 권한 등록 (원격 시 재접속 필요)
docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
4. 컨테이너 설치
4-1. NGC 컨테이너 방문
기본적으로 주피터가 설치 되어 있는 컨테이너를 제공하고, 최신 컨테이너는 Mixed Precision 을 제공한다.
파이토치를 공부 중이기에
4-2. 원하는 프레임 워크 선택 후 풀 명령어 복사
docker pull nvcr.io/nvidia/pytorch:19.12-py3
설치 이후
docker images
docker run -it -p <포트포워딩접근포트>:<내부컨테이너포트기본값8888> -v ~/doker:/data --name mutalab_pythorch be02 jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/data'
docker run 하자마자 바로 컨테이너가 생성되고 문제가 있을시 종료 되고 컨테이너는 종료된 채 남아 있게 된다.
따라서
docker ps -a 를 이용하여 실패하거나 더이상 사용하지 않을 컨테이너는 삭제 해야 한다.
지우는 명령어는
docker rm 컨테이너아이디
몰랏던 부분은
gpu 사용 하는 컨테이너 사용시 nvidia-docker 로 첫 실행 때 실행 시켰었는데
그냥 사용이 된다는 점.
끝에 /bin/bash 사용해서 내부에서 따로 주피터를 실행 했었는데
바로 명령어 칠수 있다는 것
-v 옵션은 호스트 디렉토리 : 컨테이너 디렉토리 를 자동 생성 해서 연결 가능 하고
-- name 설정 하는 방법
정도를 배움
http://hostname:8888/ 를 실행하거나
미리 뚫어 놓은 포트포워딩 포트를 이용해서 시작하면 위 와 같이 나온다
나만 쓰고 싶으니 여기에 패스워드 기능을 활성화 - 참조
일단 한번 패스워드를 설정하고 나면 재시작을 해야 하는데
미리 설정한 docker restart 컨테이너아이디 혹은 이름
즉 위의 경우
docker restart 10df
docker restart pythorch <<오타로 잘못 이름 박힘;;
둘중 마음에 드는거로 실행
좀 범용의 컨테이너를 이용 하고 싶다면
https://eungbean.github.io/2019/11/11/Docker-for-ai/
내역을 참조 해도 좋을듯 하다.