서버 환경에서 개발을 하다 보면 매번 터미널을 통해 SSH 접속을 하고, Docker 컨테이너에 들어가 작업하는 과정이 반복되곤 합니다.
특히 머신러닝, 딥러닝, 데이터 분석처럼 GPU 서버와 컨테이너 환경이 필수적인 작업에서는 복잡한 환경 설정이 오히려 생산성을 떨어뜨리는 경우도 많죠.
이런 번거로움을 VSCode의 Remote 확장 기능을 통해 손쉽게 해결할 수 있습니다.
VSCode를 이용하면 원격 서버(SSH)와 그 안의 Docker 컨테이너까지 마치 로컬 환경처럼 자유롭게 접근하고, 코드를 수정하거나 실행할 수 있어요.
이번 포스팅에서는 다음 내용을 단계별로 소개하겠습니다.
- VSCode에서 SSH 서버에 접속하는 방법
- Docker 컨테이너에 연결하는 방법
SSH 서버 연결
1. Remote - SSH extension 설치
2. Ctrl+Shift+p 후 Open SSH Configuration File 클릭
3. 해당되는 config 파일 열기
4. config 파일이 열리면 기존 코드는 주석 처리하고, 사용자 정보 새로 작성
5. Ctrl+Shift+p 후 Connect to Host 클릭한 뒤 원하는 서버 접속
Docker container 연결
1. Docker extension 설치
2. 본인 home 디렉토리에 아래와 같이 dockerfile 생성
# dockerfile 구성 예시
FROM nvcr.io/nvidia/tensorflow:22.12-tf2-py3
ARG username
ARG userid
RUN pip install --upgrade pip
RUN pip install -U pip
RUN pip install opencv-python-headless==4.6.0.66 scipy pydicom simpleitk tqdm coloredlogs antspyx==0.4.2
RUN groupadd -g ${userid} ${username}
RUN useradd -r -u ${userid} -g ${username} ${username}
USER ${username}
3. 서버 접속 후 사용자 id 확인
- $ cat /etc/group | grep -i docker
- $ id {사용자 id}
4. Docker container 만들기
$ docker build -t {이미지명}:{태그명} \
--build-arg username={유저명} \
--build-arg userid={유저id} \
{dockerfile이 위치한 디렉토리 경로}
만약 이미지를 dockerfile이 아닌 {이미지 이름}.Dockerfile 형태로 만들었다면, -f 옵션 추가
$ docker build -f {dockerfile path}
-t {이미지명}:{태그명} \
--build-arg username={유저명} \
--build-arg userid={유저id} \
{dockerfile이 위치한 디렉토리 경로}
예시)
$ docker build -f /home/ykseo/docker_image/tf2.Dockerfile \
-t ykseo:tfv2 \
--build-arg username=ykseo \
--build-arg userid=1018 \
/home/ykseo/docker_image/
5. Docker 컨테이너 실행
$ docker run -it --gpus all \
-v {호스트 경로}:{컨테이너 경로} \
--name {컨테이너명} \
{이미지명}:{태그명}
예시)
$ docker run -it --gpus all \
-v /data:/data \
-v /home/ykseo:/home/ykseo \
--name tf2_yk \
ykseo:tfv2
6. 본인 container 우클릭으로 Attach Shell 클릭
'Study > VSCode' 카테고리의 다른 글
[VSCode] VSCode에서 database 연결하기 (0) | 2024.09.20 |
---|