NVIDIA Docker 설치 과정

92·2023년 1월 29일
0

DOCKER

목록 보기
3/4
post-thumbnail

현재는 그냥 도커에서 NVIDIA 그래픽 카드를 잡아 준다고 들었는데, 이전에는 딥러닝을 위해 docker를 설치할 때면 Nvidia Docker를 꼭 설치 해줘야 했습.. 쓰읍

그때 고생했던 기억에 설치 기록을 남깁니다.

1. NVIDIA docker 다운로드

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo  
yum install docker-ce docker-ce-cli containerd.io

2. NVIDIA docker 설치

2.1 레포지토리 구성

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

yum install -y nvidia-container-toolkit

2.2 nvidia-docker2 설치

NVIDIA docker2를 설치해야돼서, 삭제 후 다시 설치하는 과정을 남깁니다.

docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f

yum remove nvidia-docker
    
yum install nvidia-docker2
pkill -SIGHUP dockerd

2.3 gpu 사용해서 컨테이너 올리는 방법

  1. docker -v로 docker 버전 확인
  2. nvidia-smi로 device 번호 확인

A. 19.03 이전 버전 : nvidia-docker2 필요

docker run --runtime=nvidia <기타 옵션>
: 개별 지정 > docker run --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 <기타 옵션>
: 복수 지정 > docker run --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0, 1

B. 19.03 이상 버전 : nvidia-container-toolkit 패키지 필요

docker run --gpus all <기타 옵션>
    
: nvidia-container-toolkit 설치
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

yum install -y nvidia-container-toolkit
systemctl restart docker
    
: 개별 지정 > docker run --gpus <기타 옵션>
: 복수 지정 > docker run --gpus all <기타 옵션>
## container run
nvidia-docker run --gpus all -it \
    -p 8888:8888 -p 6006:6006 \
    --name tensor \
    -v /root/docker_volumes:/tf \
    --restart always \
	tensorflow/tensorflow:2.7.0-gpu-jupyter

2.4 ndivia docker cuda 메모리 추가 예시

nvidia-docker run -d --shm-size 2G -it --name <CONTAINER_NAME>\
nvidia/cuda:10.0-base /bin/bash

참고사이트

profile
{ "ME" : "DataEngineer, DataAnalyst" }

0개의 댓글