본문 바로가기
Backend MLOps/개인 환경 구축 기록

[ 자취방 워크스테이션 ] #17 우분투 서버에 NVIDIA Docker 설치하기

by SteadyForDeep 2021. 3. 13.
반응형

//1

엔비디아 드라이버와 도커가 잘 설치 되었다면

이제 nvidia-docker를 설치해보자.

 

이게 있어야 도커에서도 리눅스에 허락을 받고

그래픽카드를 마음껏 쓸 수 있다.

 

 

 

 

우선은 

docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

 

Installation Guide — NVIDIA Cloud Native Technologies documentation

On RHEL 7, install the nvidia-container-toolkit package (and dependencies) after updating the package listing: Restart the Docker daemon to complete the installation after setting the default runtime: Note Depending on how your RHEL 7 system is configured

docs.nvidia.com

여기로 들어가서 한번 쭉 훑어보기 바란다.

공식적인 안내문이다.

 

여기서 Docker에 해당하는 부분을 그대로 하면 된다.

 

우선 nvidia-docker도 이제 메인 버전이 2로 올라오면서

1.0에서의 마이그레이션 가이드가 따로 존재한다.

여기서는 그 부분은 다루지 않고 2를 바로 설치하는 경우를 본다.

 

$ curl https://get.docker.com | sh \
  && sudo systemctl --now enable docker

이전 포스팅에서 | 의 역할을 설명한 적이 있는데 이런식으로도 사용할 수 있다.

도커의 official convenience script를 저 URL에서 받아와서 sh로 바로 실행한다.

그리고 도커를 켜준다.

 

그러면 20초간 sleep하고 읽을 시간을 준다.

이런 저런 말이 많이 나오는데 원한다면 자세히 읽어보면 된다.

그냥 도커의 설치와 설치 후의 설정에 대해서 적어둔 것이다.

 

이제 stable GPG키를 등록한다.

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

전체적인 과정이 도커의 설치와 비슷하다.

 

리눅스를 사용할때 WSL이나 MIG를 사용한다면 다른 키를 등록해야하지만

그게 뭔데? 라고 생각이 된다면 저대로 등록하면 된다.

 

sudo apt-get update

역시 리포지토리 등록후에는 업데이트를 해준다.

 

sudo apt-get install -y nvidia-docker2

간단한 명령어로 설치가 가능하다.

-y 옵션은 y/n을 물을때 자동으로 y를 대답하게 하는 옵션이다.

 

sudo systemctl restart docker

도커를 재시작 해준다.

 

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

이제는 도커가 드라이버를 잘 쓸수 있는지 테스트해본다.

우리는 계속해서 최신버전을 받아왔으므로 11.0-base를 그대로 두고 시작해도 된다.

 

이미지를 불러와서 도커를 하나 설치하고 자동으로 nvidia-smi 를 실행해서 결과를 보여준다.

 

성공한 것이다.

 

한가지 중요한 점은 우리가 엔비디아 도커를 쓸때 --gpu all 명령어를 썼다는 것이다.

텐서플로우의 공식 홈페이지 내용인데 나의 경우 도커 20.10.5 를 쓰기때문에

--gpu all 플래그가 있어야 nvidia docker를 사용할 수 있다.

 

 

 

반응형

댓글