AI 노트/공부기록

NLP(자연어처리)를 위한 사전세팅 - 2. NVIDIA-Docker 설치하고, 컨테이너 띄우기

yourhm 2025. 5. 15. 16:47

지난 번에 도커 설치까지 했다. 이번에는 NVIDIA-Docker를 설치하려고 한다. 검색해보니 NVIDIA-Docker 설치 전에도 확인해야 할 것들이 있었다.

 

[참고] 도커 설치👉 https://limhm4907.tistory.com/248

 

NLP(자연어처리)를 위한 사전세팅 - 1. 도커 설치하기(Docker Desktop for Windows) 무한 로딩 해결 방법

도커 설치파일을 실행하니 계속 무한 로딩으로 몇 분째 이러고 있다. 확인해보니 Windows를 사용하는 경우 도커 설치 전, 사전 작업이 필요했던 것이다. 사전 작업을 먼저하고 다시 시도해 보기로

limhm4907.tistory.com

 

 

1. 설치 전 확인할 것

(1) NVIDIA Driver 확인하기

이미 설치되어 있는지 확인하는 방법: 파워쉘 또는 cmd에서 아래 명령어를 입력한다.

nvidia-smi

 

 

결과 화면이 아래와 같이 나타나면, NVIDIA 드라이버가 잘 설치되어 있고 GPU도 잘 인식되고 있는 상태라는 것이다. 만일 아래 화면처럼 안 뜨고 오류가 발생한다면, 설치가 안되어있거나 문제가 있는 것이다.

 

 

✔️ 일단 나는 위 화면과 같이 나타났기 때문에 성공.

 

NVIDIA 드라이버를 설치하는 이유는 GPU를 사용하는 프로그램(예: PyTorch, TensorFlow, Docker 컨테이너 등)이 운영체제와 GPU 간에 통신할 수 있도록 해주는 다리 역할을 하기 때문이다.

 

역할  설명
GPU 제어 NVIDIA 드라이버는 GPU를 작동시키는 “운전사(Driver)” 역할을 함. 드라이버 없이는 GPU가 아무것도 못 함.
CUDA 지원 딥러닝, 데이터 분석 라이브러리들이 사용하는 CUDA 연산은 NVIDIA 드라이버를 통해 작동함. 드라이버가 CUDA와 GPU를 연결해 줌.
도커 GPU 사용 Docker 컨테이너에서 GPU를 쓰려면 호스트 OS에 설치된 NVIDIA 드라이버를 컨테이너가 참조함. 이게 없으면 --gpus all 같은 옵션이 작동 안 하게 됨.

 

 

(2) Ubuntu(우분투) 버전 확인하기

이제 설치되어 있는 Ubuntu 실행하여 버전을 확인해보자.

Ubuntu를 실행하니, 아래 화면과 같이 username & password 세팅하라고 나온다.

 

해당 창에서 아래와 같은 명령어를 통해 ubuntu 버전 확인한다.

lsb_release -a

 

✔️ Ubuntu 버전이 확인되었다. => Ubuntu 24.04 

 

 

 

 

2. NVIDIA Container Toolkit 설치

이제 NVIDIA-Docker 설치할 차례다.

다만 NVIDIA-Docker 는 NVIDIA Container Toolkit으로 대체되었다고 한다. (NVIDIA-Docker 는 현재 지원하지 않음)

 

STEP 1. NVIDIA GPG 키 및 저장소 추가

1차 시도: 실패

Ubuntu에서 아래의 명령어를 실행하여 툴킷 설치를 시도했다. (명령어에 대한 자세한 설명은 2차 시도에 성공한 케이스에서 작성)

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && \
curl -s -L https://nv> idia.github.io/libnvidia-container/gpgkey | sudo apt-key add - && \
curl -s -L h> ttps://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sudo tee > /etc/apt/sources.list.d/nvidia-container-toolkit.list

 

결과 화면에 <html> 코드들이 있었고 타이틀 태그 안에 "Unsupported distribution or misconfigured repository settings | NVIDIA Container Toolkit"  내용이 있었다. 전체적으로 Chat-GPT 복붙해서 물어보니 => 명령어 실행 실패라고 함.

 

[원인]

Nvidia 에서 현재 내 노트북에 설치되어있는 Ubuntu 24.04 버전은 아직 지원하지 않아서, URL을 열었더니 "404 페이지" (없는 페이지)가 뜬 것이라고 함.

 

[해결방법]

Ubuntu 22.04 버전을 새로 추가 설치하기.

wsl --install -d Ubuntu-22.04

 

 

 

Ubuntu 22.04 설치 완료

-> 계정 정보 세팅 (username, password)

-> Ubuntu 셀 프롬프트 입력 가능해짐 (초록색 텍스트가 생김)

 

[참고]

Ubuntu 환경에서 빠져나가려면 : exit

Ubuntu 환경으로 다시 진입하려면: wsl -d Ubuntu-22.04 

 

이 창에서 lsb_release -a 명령어를 다시 실행하니, 새로 추가 설치한 Ubuntu 의 버전(22.04)이 정상적으로 확인되었다.

 

 

2차 시도: 성공

위에서 새로 설치한 Ubuntu 22.04 환경에서 NVIDIA Container Toolkit 설치 명령어를 실행하니 성공했다. [sudo] password 는 아까 시도 1에서 Ubuntu 22.04 설치 시 설정했던 password를 입력해주면 된다.

 

[NVIDIA Container Toolkit 설치 명령어]

1단계. GPG 키 추가

curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -

- NVIDIA에서 제공하는 GPG 키를 다운로드하고, 이 키를 Ubuntu의 신뢰할 수 있는 패키지 서명 키 목록에 추가
- GPG 키는 "이 패키지는 NVIDIA에서 진짜 만든 거야!" 라는 인증서 역할을 한다.

- 쉽게 말하면, "NVIDIA가 제공하는 패키지니까 믿어도 돼요!" 라고 시스템에 알려주는 명령어.

 

2단계. 저장소 파일 추가

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

- apt가 실제 패키지가 있는 NVIDIA 저장소(/stable/deb/)에서 패키지를 찾을 수 있도록 저장소 경로가 담긴 설정 파일을 받아옴.

- 이 설정 파일을  /etc/apt/sources.list.d/에 저장하면 → apt가 해당 저장소를 인식하게 되어, nvidia-container-toolkit을 나중에 설치할 수 있게 됨.

 

[참고]

apt 란? Advanced Package Tool → 리눅스에서 소프트웨어(패키지)를 설치하고 관리하는 패키지 관리자

 

 

STEP 2. 패키지 목록 업데이트

sudo apt-get update

- 위에서 등록한 NVIDIA 저장소에서 어떤 패키지를 설치할 수 있는지 목록을 업데이트하는 명령어
- 쉽게 말하면, "방금 알려준 사이트에 뭐 있는지 최신 목록 좀 받아와줘!"

 

 

 

 

STEP 3. NVIDIA Container Toolkit 설치

sudo apt-get install -y nvidia-container-toolkit

- 실제로 nvidia-docker 역할을 하는 핵심 도구를 설치하는 단계 (이걸 해야 Docker가 GPU를 쓸 수 있게 됨.)
- "-y"는 설치 중간에 "설치하시겠습니까?" 물어보는 걸 자동으로 "예" 처리하는 옵션.

 

 

 

 

STEP 4. Docker 재시작

Docker Desktop을 껐다 켜는 방법?
- Windows 오른쪽 하단 트레이(작업표시줄)에서 도커 아이콘 우클릭 → Quit Docker Desktop
- 다시 시작 메뉴에서 Docker Desktop 실행

 

다시 도커를 재시작하는 이유는?
이제 Docker에게 "방금 GPU 쓸 수 있는 설정이 추가됐어!" 라고 알려주는 것. 재시작을 안 하면 Docker는 GPU를 인식하지 못하므로 꼭 하기.

 

 

STEP 5. Docker 테스트

docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi

 

구성  의미
docker run 새로운 컨테이너를 실행
--rm 실행이 끝나면 컨테이너 자동 삭제
--gpus all 모든 GPU를 컨테이너에 할당 (→ NVIDIA 도구가 인식할 수 있게)
nvidia/cuda:12.0-base CUDA 12.0이 설치된 공식 NVIDIA 도커 이미지 사용
nvidia-smi GPU 상태를 확인하는 NVIDIA 전용 명령어

 

위 명령어를 실행했을 때 아까 봤던 nvidia-smi 명령어 실행 결과 화면처럼 GPU 정보가 출력되면, Docker 컨테이너에서도 GPU가 정상적으로 사용 가능하다는 것이다.

 

 

1차 시도: 실패

-> "Ubuntu 안에 docker 명령어가 없어요. Docker Desktop이랑 연결돼야 합니다" 라는 뜻.

 

[원인] 현재 Ubuntu-22.04 WSL 환경에서 Docker가 연결되지 않았기 때문에 이런 메시지가 나옴.

[해결 방법]  Docker Desktop에서 Ubuntu-22.04와의 연동(Wsl Integration)을 켜주어야 함.

 

(1) Windows 시작 메뉴 → Docker Desktop 실행
(2) 오른쪽 위 톱니바퀴 모양의 Settings (설정) 클릭
(3) 왼쪽 메뉴에서 Resources > WSL Integration 클릭
(4) Ubuntu-22.04 옆에 있는 체크박스 활성화
- Enable integration with additional distros → 체크되어 있어야 하고
- Ubuntu-22.04를 활성화해 주어야 함
(5) Apply & Restart 클릭.

- 설정 저장 후 Docker가 재시작됨

 

 

 

2차 시도: 실패

 

 

[원인] 현재 Ubuntu(Wsl) 안에서 docker 명령을 일반 사용자로 실행하고 있는데,
일반 사용자는 Docker 소켓에 접근할 권한이 없어서 발생하는 권한 문제(permission denied)

 

[해결 방법] 현재 사용자를 docker 그룹에 추가하기 

 

(1) 사용자 추가

sudo usermod -aG docker $USER

 

(2) 설정 적용을 위해 Ubuntu 완전히 종료

exit

 

(3) Ubuntu 다시 진입

wsl -d Ubuntu-22.04

 

 

다시 진입하니, 파란색 텍스트 부분이 바뀌었음.

groups 명령어 실행하여 확인해보니 docker가 추가되어 있음.

사용자 추가하기 전
사용자 추가한 후

 

 

3차 시도: 성공

테스트를 위한 명령어를 실행하니 정상적으로 나온다.