카카오 클라우드 GPU 서버 설치 및 설정 가이드 (Docker + GPU 최적화)

2025. 5. 30. 09:13·Infra
728x90
반응형

1. 서버 스펙 정보

이 가이드에서는 다음과 같은 서버 사양으로 설정을 진행합니다:

  • 인스턴스 타입: gn1i.2xlarge (GPU 인스턴스)
  • 운영체제: Ubuntu 20.04 - Nvidia
  • CPU: 8vCPU
  • 메모리: 32GB
  • 저장공간: SSD 60GB

카카오 클라우드 로고


2. 서버 접속하기


2.1 접속 준비

PEM키가 존재하는 폴더로 이동합니다. 필자는 로컬 컴퓨터의 Downloads 폴더에 저장했습니다.

cd Downloads

2.2 SSH를 통한 서버 접속

다운로드한 PEM 키 파일을 사용하여 서버에 접속합니다:

ssh -i quiznote.pem ubuntu@[ip주소]

참고: [ip주소] 부분에는 카카오 클라우드에서 할당받은 실제 IP 주소를 입력해야 합니다.


3. 서버 초기 설정


3.1 시스템 업데이트

서버에 접속한 후 가장 먼저 패키지 목록을 업데이트하고 설치된 패키지를 최신 버전으로 업그레이드합니다:

sudo apt update && sudo apt upgrade -y

3.2 GPU 상태 확인

NVIDIA GPU가 제대로 인식되고 있는지 확인합니다:

nvidia-smi

실행 결과는 다음과 같이 나타납니다:

nvidia-smi 출력 결과


4. Docker 및 NVIDIA Container Toolkit 설치


4.1 Docker 설치

Docker와 NVIDIA Container Toolkit을 설치하여 GPU를 Docker 컨테이너에서 사용할 수 있도록 설정합니다:

# 필요 패키지 설치
sudo apt-get install ca-certificates curl gnupg lsb-release -y

# Docker GPG 키 추가
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Docker 저장소 등록
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 패키지 목록 업데이트
sudo apt-get update

# Docker와 Docker Compose plugin 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

4.2 NVIDIA Container 지원 설치

Docker 컨테이너에서 GPU를 사용하기 위해 두 가지 방법 중 하나를 선택할 수 있습니다. 최신 방법인 NVIDIA Container Toolkit 또는 이전 방법인 nvidia-docker2 중 하나를 설치하세요.


방법 1: NVIDIA Container Toolkit 설치 (권장)

# NVIDIA Container Toolkit 설치
sudo apt-get install nvidia-container-toolkit -y

# Docker 환경에서 GPU 사용가능하도록 runtime 설정
sudo nvidia-ctk runtime configure --runtime=docker

# Docker 서비스 재시작
sudo systemctl restart docker

방법 2: nvidia-docker2 설치 (대체 방법)

일부 환경에서는 NVIDIA Container Toolkit 대신 nvidia-docker2를 사용하는 것이 더 효과적일 수 있습니다:

# NVIDIA Docker 레포지토리 설정
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && \
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - && \
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 패키지 설치
sudo apt-get update
sudo apt-get install -y nvidia-docker2

# Docker 서비스 재시작
sudo systemctl restart docker

4.3 GPU 사용 가능 여부 확인

Docker 컨테이너에서 GPU가 제대로 인식되는지 테스트합니다:

sudo docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi

정상적으로 실행되면 다음과 같이 nvidia-smi 명령어의 결과가 표시됩니다.


4.4 Docker 권한 설정

Docker를 sudo 없이 사용하려면 현재 사용자를 docker 그룹에 추가합니다:

sudo usermod -aG docker $USER

변경사항을 적용하려면 로그아웃 후 다시 로그인하거나 다음 명령어를 실행합니다:

newgrp docker

4.5 Docker 설치 확인

Docker와 Docker Compose가 제대로 설치되었는지 확인합니다:

docker --version
docker compose version

다음과 같이 버전 정보가 표시되면 성공적으로 설치된 것입니다:

Docker Compose 버전 확인


5. 프로젝트 클론 및 설정


5.1 Git 저장소 클론


프로젝트 코드를 서버에 가져오기 위해 Git 저장소를 클론합니다:

git clone [git 주소]

중요: [git 주소] 부분에는 실제 프로젝트의 Git 저장소 주소를 입력해야 합니다.

Git 인증 요청

Password 입력 창이 나타나면 GitHub 비밀번호가 아닌 개인 액세스 토큰(Personal Access Token)을 입력해야 합니다. GitHub에서 토큰을 발급받은 후 사용하세요.


5.2 환경 설정 파일 생성

프로젝트 폴더로 이동한 후, 필요한 환경 설정 파일을 생성합니다:

프로젝트 디렉토리

환경 설정 파일 위치

.env 파일은 보안상의 이유로 Git에 포함되지 않는 경우가 많습니다. 따라서 직접 생성해야 합니다:

vim .env

vim 편집기에서 .env 파일 내용을 작성하는 방법:

  1. i 키를 눌러 삽입 모드로 전환
  2. 필요한 환경 변수와 값을 입력
  3. 작성을 완료한 후, ESC 키를 눌러 명령 모드로 전환
  4. :wq를 입력하고 Enter를 눌러 저장하고 vim을 종료

6. Docker Compose로 애플리케이션 실행하기


6.1 Docker Compose 실행

프로젝트 디렉토리에서 다음 명령어로 애플리케이션을 실행합니다:

docker-compose.override.yml 파일이 있는 경우:

docker compose -f docker-compose.yml up --build -d

docker-compose.yml 파일만 있는 경우:

docker compose up --build -d

참고: -d 옵션은 백그라운드에서 컨테이너를 실행합니다. --build 옵션은 컨테이너를 시작하기 전에 이미지를 다시 빌드합니다.

Docker Compose가 실행되면 다음과 같이 빌드 과정이 진행됩니다:

Docker Compose 빌드 중


6.2 컨테이너 상태 확인

실행 중인 컨테이너 목록을 확인합니다:

docker ps

컨테이너 로그를 확인하려면:

docker logs [컨테이너ID 또는 이름]

7. 문제 해결


7.1 Docker 권한 문제

"Permission denied" 오류가 발생하면 다음 명령어를 실행해보세요:

sudo chmod 666 /var/run/docker.sock

7.2 포트 충돌 문제

포트가 이미 사용 중인 경우, 실행 중인 프로세스를 확인합니다:

sudo lsof -i :[포트번호]

7.3 NVIDIA Docker 관련 문제

NVIDIA Container Toolkit으로 문제가 발생한다면, 앞서 설명한 대체 방법인 nvidia-docker2 설치를 시도해보세요. 두 방법 모두 시도했지만 문제가 해결되지 않는 경우, 다음을 확인하세요:

  1. 최신 NVIDIA 드라이버가 설치되어 있는지 확인
  2. Docker 버전 호환성 확인
  3. CUDA 버전과 이미지 태그의 일치 여부 확인

8. 추가 설정 (선택사항)


8.1 방화벽 설정

필요한 포트를 개방하려면:

sudo ufw allow [포트번호]

8.2 자동 시작 설정

서버 재부팅 시 Docker 서비스가 자동으로 시작되도록 설정:

sudo systemctl enable docker

마치며

이제 카카오 클라우드 GPU 서버에서 Docker와 NVIDIA Container Toolkit을 사용하여 GPU 애플리케이션을 실행할 준비가 완료되었습니다. 이 가이드가 GPU 기반 프로젝트를 설정하는 데 도움이 되었기를 바랍니다.

질문이나 문제가 있으면 언제든지 댓글로 남겨주세요!

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Infra' 카테고리의 다른 글

macOS 홈서버에서 Docker Desktop을 버리고 Colima로 전환한 이유  (0) 2026.04.09
OSI 7계층, 택배 한 번 시켜보면 이해됩니다!!!  (1) 2026.04.07
'Infra' 카테고리의 다른 글
  • macOS 홈서버에서 Docker Desktop을 버리고 Colima로 전환한 이유
  • OSI 7계층, 택배 한 번 시켜보면 이해됩니다!!!
Kun Woo Kim
Kun Woo Kim
안녕하세요, 김건우입니다! 웹과 앱 개발에 열정적인 전문가로, React, TypeScript, Next.js, Node.js, Express, Flutter 등을 활용한 프로젝트를 다룹니다. 제 블로그에서는 개발 여정, 기술 분석, 실용적 코딩 팁을 공유합니다. 창의적인 솔루션을 실제로 적용하는 과정의 통찰도 나눌 예정이니, 궁금한 점이나 상담은 언제든 환영합니다.
  • Kun Woo Kim
    WhiteMouseDev
    김건우
  • 깃허브
    포트폴리오
    velog
  • 전체
    오늘
    어제
  • 공지사항

    • [인사말] 이제 티스토리에서도 만나요! WhiteMouse⋯
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 분류 전체보기 (157)
      • Frontend Development (65)
        • [실습] 실시간 트레이딩 대시보드 만들기 (4)
      • Backend Development (28)
      • AI · ML (5)
        • Computer Vision (5)
      • Algorithm (35)
        • 백준 (11)
        • 프로그래머스 (18)
        • 알고리즘 (5)
      • Infra (3)
      • 자료구조 (4)
      • Language (6)
        • JavaScript (6)
      • 자격증 공부 (1)
        • GCP Developer (1)
      • Tools (1)
  • 링크

    • Github
    • Portfolio
    • Velog
  • 인기 글

  • 태그

    vibe coding
    Qwen2.5-VL
    딥러닝
    바이브 코딩
    Synthetic-Data
    AgentTeams
    데이터증강
    Next.js
    객체탐지
    tailwindcss
    multiagent
    AI
    colima
    oversampling
    rt-detr
    claudecode
    AI개발
    Vision-Language-Model
    mlops
    Data-Augmentation
    AI Agentic Coding
    Human-in-the-Loop
    모델비교
    Nextjs
    API Gateway
    flat layout
    Class-Imbalance
    ai 코딩
    컴퓨터비전
    src layout
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kun Woo Kim
카카오 클라우드 GPU 서버 설치 및 설정 가이드 (Docker + GPU 최적화)
상단으로

티스토리툴바