앞선 글에서 Docker를 설치해 보았다.
이번 포스팅에서는 에서 이미지를 다운받고 이를 활용하는 방법을 소개해보겠다.
👉 NVIDIA CUDA 버전확인
이미지를 받기전 GPU가 있을 경우 본인의 CUDA 버전을 확인해야 한다. CMD 콘솔에 아래와 같이 입력하면 NVIDIA 드라이버 버전과 CUDA버전을 확인할 수 있다.
# NVIDIA CUDA 버전확인
nvidia-smi

위 처럼 CUDA버전 및 드라이버 버전 등 다양한 정보가 나온다. 오른쪽 상단의 CUDA Version 부분이 현재 내 컴퓨터의 CUDA 버전이다.
만약 nvidia-smi가 안된다면 NVIDIA 드라이버와 CUDA 설치가 안되어있는 것이므로 설치를 완료해 주면 된다.
👉 Docker 이미지 받기
Docker는 보통 이미지를 Docker Hub라는 곳에서 받아온다. Docker Hub는 Docker 이미지들의 창고라고 생각하면 된다.
아래의 사이트가 Docker Hub이고 이곳에서 NVIDIA의 CUDA 12.1 이미지를 받아서 ML/DL 환경을 구축해 보겠다.
Docker Hub Container Image Library | App Containerization
Software supply chain Secure Your Supply Chain with Docker Hardened Images Use Docker's enterprise-grade base images: secure, stable, and backed by SLAs for Ubuntu, Debian, Java, and more. Regularly scanned and maintained with CVE remediation and long-term
hub.docker.com
** 필자의 컴퓨터가 CUDA 12.1 버전이다. Docker 이미지를 설치하면서 CUDA 버전을 바꿔도 상관없지만 본인의 물리적인 GPU환경이 해당 CUDA 버전과 호환이 되는지 확인해봐야 한다.
실제로 RTX 50번대 시리즈(BlackWell)에서 CUDA 12.8 이상버전만 호환되었고 이전 버전의 CUDA는 호환이 안되었다.
Docker Desktop을 통해 Docker Hub에 접근할 수 있다. 그래서 Docker Desktop기준으로 설명을 하겠다.
Docker Desktop에 좌측 중간정도에 Docker Hub라는 섹션이 있다.
이것을 클릭해 들어가고 검색 할 수 있는 칸이 존재한다.
아래 사진과 같이 nvidia를 검색했고 cuda를 다운받으려고 해서 빨간색 박스 쳐진 항목을 클릭했다.


여기에서 CUDA 12.0 ubuntu버전으로 pull image를 하게 되면 Docker Desktop 내에 이미지가 받아진다.
CLI에서 하려고하면 저 터미널 창에서 아래와 같이 입력하면 된다.
docker pull nvidia/cuda:12.1.0-devel-ubuntu20.04
** 다운받는 이미지는 약 3.33GB의 용량을 가지고 있으므로 이미지를 받기 전에 꼭 하드디스크의 용량을 확인해 보기 바란다.
3.33GB를 Pull 했는데 이미지를 설치를 했더니 7GB로 잡힌다.
Docker 이미지는 여러 겹의 레이어로 구성되어 실제 디스크에서는 더 많은 공간을 차지할 수 있다고 한다.
크기가 큰 이미지의 경우 10GB가 넘는경우가 많아 하드디스크 용량이 넘치게 된다면 컴퓨터가 뻗게 될 수 있으니 주의하자.

Docker Desktop에서 좌측 상단쪽 Images를 클릭하면 받은 nvidia/cuda 12.1.0 버전을 확인할 수 있다.
CLI로 확인하고싶다면 우측 하단에 터미널을 켜서 아래의 명령어를 작성해 보면 받은 이미지를 확인할 수 있다.
# 도커 이미지확인
docker images
👉 Docker 컨테이너 생성
이미지를 다운받았으면 이제 컨테이너를 생성해서 환경을 구성하면 된다.
아래의 명령어로 Docker 컨테이너를 생성할 수 있다.
docker run -it --gpus all \
-v C:\Users\user:/data \
-p 8888:8888 \
--name test_env nvidia/cuda:12.1.0-devel-ubuntu20.04 /bin/bash
| 명령어 | 설명 |
| docker run | 컨테이너 생성 및 실행 |
| gpus all | GPU 할당 (ML/DL 필수) |
| -v C:\Users\user:/data | 볼륨 마운트( C:\Users\user를 마운트함.) |
| -p 8888:8888 | 포트 포워딩 |
| --name test_env | 컨테이너 이름 지정(test_env) |
| nvidia/cuda:12.1.0-devel-ubuntu20.04 | 사용할 이미지 이름 |
명령어를 위의 표로 정리할 수 있다.

그럼 위의 이미지 처럼 컨테이너 내부에 접속할 수 있다. 다시 접속하고 싶을 때는 아래의 명령어를 쳐서 확인한다.
docker ps
우리가 만든 test_env 가 없다면 docker 컨테이너가 꺼진 상태이다. 있다면 켜진 상태라고 생각하면 된다.
다시 시작하고싶다면 start 명령어를 입력하고 시작된 상태라고 확인되면 attach 명령어를 입력해서 확인하면 된다.
docker start test_env
docker attach test_env
위 명령어를 순서대로 실행하면 이전에 작업하던 컨테이너의 셸 환경에 다시 접속하게 되며, 이제 컨테이너 내부에서 원하는 개발 환경을 구축할 준비가 완료된 것입니다.
💡 마무리
컨테이너까지 접근이 완료되었다면 이제 컨테이너 안에서 자유롭게 코드를 작성하고 실행해보면 된다.
필자가 선택한 NVIDIA CUDA 12.1 버전에는 Python이 설치되어있지 않아서 Python부터 설치하고 시작해야 했다.
** NVIDIA CUDA 12.1의 OS는 Linux이기 때문에 Linux 명령어에 익숙하다면 개발하는데 불편함은 없을 것이다.
'ETC' 카테고리의 다른 글
| [Docker] 도커배포 최적화로 안정적인 배포(Feat.dockerfile) (1) | 2025.11.29 |
|---|---|
| [Docker] Windows에서 도커 시작하기 - 개념부터 설치까지 (0) | 2025.11.07 |
| [nbconvert] 주피터 노트북 PDF로 만들기 (0) | 2025.09.07 |
| [Linux] Crontab으로 자동 스케줄링하는 법 (3) | 2025.06.28 |