편안한 도커 환경의 단점은 커서 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...💜