도커 안에 ssh 연결을 한다면?

타샤's 월드·2025년 5월 30일

편안한 도커 환경의 단점은 커서 etc...를 사용 못한다는것.
물론 소스코드를 볼륨으로 내리고 거기에 붙이면 되지만
솔직히 커서ai에 터미널에 다 쓰고 싶잖아.
처음엔 주피터랩으로 실행하려고 했지만 결국 커서 못 잃어서

도커 안에 ssh 접속 붙이기로 했다.

# ✅ 안정성 좋은 CUDA 12.1 + Ubuntu 22.04
FROM nvidia/cuda:12.1.1-base-ubuntu22.04

# 기본 패키지 설치
RUN apt update && apt install -y \
    python3.10 python3.10-venv python3.10-dev python3-pip git curl wget nano \
    openssh-server && \
    ln -sf python3.10 /usr/bin/python3 && \
    ln -sf pip3 /usr/bin/pip && \
    pip install --upgrade pip

# PyTorch with CUDA 12.1
RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# Axolotl 및 기타 필수 패키지
RUN pip install \
    git+https://github.com/OpenAccess-AI-Collective/axolotl.git \
    transformers \
    peft \
    bitsandbytes \
    datasets \
    accelerate \
    sentencepiece \
    jupyterlab

# SSH 설정
RUN mkdir /var/run/sshd && \
    useradd -m docker && \
    mkdir -p /home/docker/.ssh && \
    chown -R docker:docker /home/docker/.ssh && \
    chmod 700 /home/docker/.ssh

# 호스트에서 authorized_keys를 COPY 해와서 SSH 키 인증 사용
COPY authorized_keys /home/docker/.ssh/authorized_keys
RUN chown docker:docker /home/docker/.ssh/authorized_keys && \
    chmod 600 /home/docker/.ssh/authorized_keys

# SSH 설정 수정: 비밀번호 로그인 금지, 루트 로그인 금지
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config && \
    sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

# 포트 열기
EXPOSE 22 8888

# 작업 디렉토리
WORKDIR /workspace

# 시작 스크립트: SSH + Jupyter 실행
CMD service ssh start

그리고 포트가 기존 22로는 충돌날테니까 2222로 열었음.

일케하면 로컬에서 ssh docker 로 도커 컨테이너 안 접속 가능

최종적으로 root 연결에 ssh proxy서버까지 사용해서
집에서도 내부망 서버 내 도커 컨테이너 안으로 바로 접속할 수 있음

cursor도 된다! 개쩐다ㅇㅅㅇ

This is Life...💜

profile
그때 그때 꽂힌것 하는 개발블로그

0개의 댓글