Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Trikang

Docker에 nvidia 컨테이너 설치 후 개발환경 구축하기(ssh 연결 설정 등) 본문

개발 Tip

Docker에 nvidia 컨테이너 설치 후 개발환경 구축하기(ssh 연결 설정 등)

Trikang 2024. 9. 4. 15:38

기존에 docker가 로컬 머신에 설치되어 있음을 전제로 함

 

  • devel, runtime 등 다양한 이미지 타입이 있는데, 본인은 devel로 선택(개발용)하였음
  • 아래의 명령을 통해서 잘 작동하는지 확인할 수 있다
sudo docker run --rm --gpus all nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04 nvidia-smi

 

그리고 파이토치 포함 이미지 다운로드

docker pull pytorch/pytorch:2.3.1-cuda11.8-cudnn8-runtime

 

이때, 도커 컨테이너가 안 죽고 계속 살아있는 상태로 만들기 위해서는 아래와 같이 실행

docker run -d --name paper_summary_llama_server -v /hdd2/deep/paper_summary_llama_server:/workspace -p 10015:8080 -p 3000:3000 pytorch/pytorch:2.3.1-cuda11.8-cudnn8-runtime tail -f /dev/null

 

해당 도커에 접속하기 위한 코드

docker exec -it paper_summary_llama_server /bin/bash

 

도커 컨테이너 ssh 연결

먼저 ssh부터 설치

apt-get update
apt-get install vim nano net-tools openssh-server

 

ssh config 설정

nano /etc/ssh/sshd_config

-> Port 22 (주석처리 되어있는 부분 활성화. 22번 포트면 굳이 안해줘도 되긴 함)

-> PermitRootLogin yes로 변경 (주석처리 되어있는 부분 활성화)

 

이후 서비스 재시작

service ssh start

 

접속 테스트

ssh root@<타겟 ip> -p 포트번호

 

만약, 내 로컬 머신에서 ssh-keygen을 통한 비밀번호 없는 로그인이 가능하도록 만들고 싶다면

  • 아래는 맥에서, 유저명 안에 .ssh 디렉토리에 key 파일을 생성하는 예시. 입맛대로 조정

먼저 컨테이너 내에서 mkdir를 통해 /.ssh/authorized_keys 디렉토리 생성

ssh-keygen -t rsa -f /Users/'유저명'/.ssh/'파일명'

 

scp 명령어를 통해 컨테이너로 key 복사

scp -P 포트번호 ~/.ssh/파일명.pub 계정@타겟ip:~

 

컨테이너 내에서

cat ~/파일명.pub >> ~/.ssh/authorized_keys

 

그 이후 권한 변경

chmod 740 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 700 .

 

마지막으로, 로컬 ssh 설정도 변경해줘야 함. ~/.ssh 디렉토리로 이동해보면 config 파일이 있는데, 이를 열어서 해당 키에 관한 값 추가

Host paper_summary
    Hostname 타겟ip
    Port 포트
    User 계정명
    ServerAliveCountMax 10
    ServerAliveInterval 60
    IdentityFile ~/.ssh/파일이름
    #ProxyCommand ssh -W %h:%p -i ~/.ssh/파일이름 -p {PORT_MANAGER} limited-user@{HOSTNAME_MANAGER}

 

Comments