SSH 서버 환경 구축(1)

merin·2022년 1월 4일
0
post-thumbnail

😇 교수님께서 만들어주신 ssh 서버, 😇 교수님께서 하사하신 gpu로
docker, container, images 생성 및 라이브러리 설치

작업리스트
1ssh 서버 접속하기 - SSH 서버 환경 구축(1)
2nvidia gpu driver 설치 - SSH 서버 환경 구축(1)
3nvidai 도커 설치 - SSH 서버 환경 구축(1)
4PyTorch/Cuda 세팅된 도커 이미지 풀링 - SSH 서버 환경 구축(2)
5도커 이미지를 이용해 도커 컨테이너 설정 (생성 시 포트, 데이터볼륨 지정 등 필요) - SSH 서버 환경 구축(2)
6컨테이너에서 ssh 서버 및 필요한 라이브러리 설치 - SSH 서버 환경 구축(2)

1. SSH 서버 접속하기

1. terminal 열기

(base) 100ui-iMac:~ at100$

2. ssh 주소입력
아이디@11.111.111.11 -p 111111
형식의 ssh 서버 주소를 입력한다.

3. 비밀번호 입력
아이디@11.111.111.11's password:
라고 뜨면 비밀번호를 입력한다. (명령어 창에 비밀번호가 보이지 않으니 그냥 입력하고 엔터를 누르면 된다.)

4. ssh 서버 접속 성공!

2. nvidia gpu driver 설치

참고 : https://pstudio411.tistory.com/entry/Ubuntu-2004-Nvidia%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

1. 그래픽카드 및 설치 가능한 드라이버 확인
ubuntu-drivers devices

recommended에 따라 나는 nvidia-driver-470을 설치하면 된다.

2. nvidia-driver-470 설치
설치는 자동, 수동이 있는데 나는 수동으로 설치!

sudo apt install nvidia-driver-450

설치가 완료되면

sudo reboot

로 재부팅 하고 다시 ssh 접속해서

nvidia-smi

를 입력하면

이 화면이 나오면 설치 완료된 것이다.

만약에 나오지 않았을때,

sudo apt-cache search NVIDIA driver metapackage

으로 NVIDIA 드라이버 설치 목록을 확인해보거나
재부팅을 제대로 했는지 확인하기

3. nvidia docker 설치

docker 설치 부터 컨테이너 설정까지는 https://greeksharifa.github.io/references/2021/06/21/Docker/#container-%EB%82%B4%EB%B6%80-%EC%84%A4%EC%A0%95
를 참조하였다.

굉장히 좋은 Docker, Container, Image 설명을 발견!


기본 설명

여러 개의 Python 프로젝트에 참여하다 보면 각 프로젝트에서 사용하는 Python과 라이브러리들의 버전이 다른 경우가 대부분이다. 그래서 많은 경우 가상환경(python venv 또는 conda 등)을 사용하여 각 프로젝트의 환경을 분리하고는 하는데, Python을 여러 버전을 설치하기 곤란한 경우나 환경을 완전히 분리하고 싶은 경우에는 Docker(도커)를 사용할 수 있다.

Docker는 간단히 Container 기반의 Open-Source 가상화 플랫폼 정도로 정의할 수 있다. Container는 외부와 격리된 공간(파일 통신이 가능하긴 하지만, 일단 넘어가자)이며 내부에서 프로세스를 수행할 수 있다.

Docker를 사용하는 것은 마치 윈도우에서 가상머신을 돌리는 것과 비슷하다. 사실상 완전히 분리된 환경으로 동작하며, 한 환경에 설치된 라이브러리나 프로그램이 다른 환경에 아무런 영향을 미치지 못한다. 두 환경 간의 통신은 지정된 명렁어를 통해서만 가능하다.
참고: 엄밀히 말해서 가상머신과는 다르다. 가상머신은 추가적인 OS를 설치하여 가상화하는 방법인데, 이러한 방식은 Docker에 비해 추가적인 비용이 더 들기 때문에 실제 프로젝트 환경에서 쓰기에는 부적절하다.

Docker의 기본 사용법은 다음과 같다.

필요한 세팅이 되어 있는 Docker Image를 인터넷에서 다운로드한다. 예: Pytorch Docker Image List
다운받은 Docker Image로 새 Container를 생성한다. (같은 이미지로 여러 Container를 생성할 수 있다.)
생성한 Container를 구동시키고(띄우고) 접속한다.
필요한 Python 라이브러리를 마저 설치하고 사용 가능!

즉, 이미지 다운 → Container 생성 → 사용 순서를 따른다. 참 쉽죠? 🤩


1. curl 명령어로 Docker 다운로드

curl -fsSL https://get.docker.com/ | sudo sh

를 입력하고 password를 입력하면 설치 된다. |가 안먹으면 복사해서 입력해보기! 직접 입력하면 오류난다
(Ubuntu 19.03이상 설치, Window 나 Mac은 다른 방법으로 사용)

다음 코드를 순차적으로 작성 (꼭 필요한 과정인지는 잘 모르겠음)

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

sudo apt-get update
# Docker official GPG key 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 결과: OK

sudo apt-key fingerprint 0EBFCD88

# 결과
pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

2. Docker Repository 추가

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

3. Docker 설치 진행

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

ModuleNotFoundError: No module named 'apt_pkg' 에러가 뜨면 Python 기본 버전을 바꾸라는데 여기서 애먹었다.

sudo update-alternatives  --set python3  /usr/bin/python3.5
# 결과: update-alternatives: using /usr/bin/python3.5 to provide /usr/bin/python3 (python3) in manual mode
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
root@vicman2:/home/ywjang# update-alternatives  --set python3  /usr/bin/python3.6
# 결과: update-alternatives: using /usr/bin/python3.6 to provide /usr/bin/python3 (python3) in manual mode

나는 python3가 아니라 python으로 되어있었고, python3.5가 아닌 python3.8로 저장되어있었기 때문에
sudo update-alternatives --set python /usr/bin/python3.8
이렇게 작성해야 python 기본 버전을 바꿀 수 있었음.
근데 참고 블로그에서 sudo를 빼먹어서 오류났었다. sudo는 알잘딱깔센 입력해주자.

특정 버전 설치는 apt-cache madison docker-ce로 버전을 확인 후 sudo apt-get install docker-ce= docker-ce-cli= containerd.io와 같이 설치하자.

설치 확인은 다음 hello_world를 실행해서 확인해보자.

sudo docker run hello-world

4. Nvidia Toolkit 설치

Container에서 GPU를 정상적으로 잘 사용하려면 nvidia toolkit를 설정해 주어야 한다.
아래 다섯 줄만 터미널에서 실행해 주자.

1) distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

2) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

3) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

4) sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

5) sudo systemctl restart docker

2번째 줄에서 OK가 출력되고, 3번째 줄에서 deb 어쩌구 하는 메시지가 여러 줄 나온다. 4번째는 update와 설치가 진행되고, 5번째 줄은 docker를 재시작한다.

5. Docker 권한 설정

Docker를 사용하려고 하면 root 권한이 (거의) 항상 필요하다. 매번 sudo를 입력하는 것은 상당히 귀찮기 때문에 현재 접속한 user에게 권한을 주자.

sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기
sudo usermod -aG docker gorio # gorio 사용자에게 권한주기

재부팅하면 권한 설정이 완료된다.

sudo reboot

이제부터 docker를 쓸 때는 sudo docker 대신 docker라고만 해도 된다.

Docker 설치 끝!! 😁

profile
MALer

0개의 댓글