지난 번에 도커 설치까지 했다. 이번에는 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차 시도: 성공
테스트를 위한 명령어를 실행하니 정상적으로 나온다.
'AI 노트 > 공부기록' 카테고리의 다른 글
| docker 기본 명령어 리스트 (0) | 2025.05.20 |
|---|---|
| NLP(자연어처리)를 위한 사전세팅 - 3. VScode 설치하기 (0) | 2025.05.16 |
| NLP(자연어처리)를 위한 사전세팅 - 1. 도커 설치하기(Docker Desktop for Windows) 무한 로딩 해결 방법 (0) | 2025.05.14 |
| 추천 시스템: Introduction (3) | 2024.07.23 |