학교에서 딥러닝 수업을 듣던 중 드디어 실습 과제가 나왔다. 실습을 하기 위해서 교수님께서는 구글 Colab에서 제공하는 GPU 환경에서 하는것을 추천하셨지만… 여러모로 내가 셋팅한것보단 불편할거 같고 연구실에 놀고있는 서버도 써먹어보려고 개발환경을 셋팅하게 되었다.

할 것

인공지능 학습용 서버 주피터 노트북으로 서비스하기

하는법

설치환경 접속

호스트 역할을 할 컴퓨터에 연결할 모니터가 없기 때문에 ssh로 접속하여 설정한다. 접속할 컴퓨터는 환경은 m1 macOS이다.

(base) reofard@seonghongnyeom ~ % ssh "우분투 계정"@"서버 주소" -p2500

nvidia-docker 설치

가장 먼저 해야할 것은 docker에서 GPU를 사용할 수 있도록 nvidia-docker를 설치해야한다. 먼저 apt를 업데이트 하고 nvidia-doocker설치 후 도커를 재시작 할 것이다.

hongnyeom@imagelab:~$ sudo apt-get update
hongnyeom@imagelab:~$ sudo apt-get install -y nvidia-docker2
hongnyeom@imagelab:~$ sudo systemctl restart docker

Docker 컨테이너 생성

이제 주피터 노트북을 깔기 위해 도커 컨테이너를 만들어야 한다. 이번에 환경셋팅에서는 pytorch이미지에서 주피터노트북을 설치하여 사용 할 것이다. 주피터 노트북은 따로 설정하지 않으면 8888번 포트를 사용하기 때문에 서비스 할 포트 번호와 컨테이너의 8888번 포트를 맵핑해준다

hongnyeom@imagelab:~$ sudo nvidia-docker pull pytorch/pytorch
hongnyeom@imagelab:~$ sudo nvidia-docker container run -idt -p 서비스 포트번호:8888  --gpus all --name "pytorch_cuda" pytorch/pytorch

설치환경 접속

이미지를 이용해 컨테이너를 생성했다면, 이제 컨테이너 접속하여 주피터 노트북을 설치하고 실행시켜야 한다. 이때 백그라운드 실행을 하기 위해 &를 붙여 실행한다.

hongnyeom@imagelab:~$ sudo nvidia-docker exec -it  "컨테이너ID" /bin/bash

=> 컨테이너 접속
root@fab7161195d6:/workspace# pip install jupyter
jupyter notebook --ip=0.0.0.0 --allow-root&

여기까지 따라왔으면 아래 사진과 같이 노트북에 접속하기 위한 토큰이 출력된다. 이 토큰 정보를 저장해두자. 맨 아래 두줄이 토큰인데 내 서버 토큰은 가렸다. 주피터노트북 웹

접속하기!

이제 다른 컴퓨터에서 브라우저를 통해 “서버주소:설정한포트번호”로 아래 사진과 같이 접속하여 토큰 정보를 이용해서 접속 및 패스워드 설정을 하면 된다.

주피터노트북 웹

잘 설치 되었는지 확인하기

아직 안했다….