개발일지/docker

Ubuntu 20.04에서 Nvidia-Docker 사용하기

자코린이 2024. 5. 11. 00:43

Docker에서 GPU를 사용해야 하는 일이 생겼습니다.

하지만 기본적으로 docker에서는 gpu를 사용할 수 없습니다.

docker에서는 gpu를 사용하기 위해선 그냥 docker가 아닌, nvidia-dokcer를 사용하여야 합니다.

 

이글은 다음 순서로 작성하였습니다.

1) ubuntu에서 nvidia-driver 설치

2) nvidia-docker 설치 및 설정

 

1. Nvidia Driver 설치

CARLA는 기본적으로 GPU를 사용합니다. 이를 위해 ubuntu에 nvidia driver를 설치하여 세팅해주어야 합니다.

 

아래 명령어를 사용하여 apt update와 upgrade를 합니다. (*upgrade는 설치한 직후에만 합니다.)

 

sudo apt update && sudo apt upgrade

 

sudo apt-get install build-essential

 

sudo add-apt-repository ppa:graphics-drivers/ppa

 

Nvidia-driver를 CLI와 GUI(*추천*) 중에서 선택하여 설치합니다.

 

1) CLI를 사용하여 설치

 

# 현재 설치된 GPU 확인
lshw -numeric -C display

 

#현재 설치 가능한 드라이버 확인(recommend가 붙어 있는 버전으로 설치)
ubuntu-driver devices

driver 설치

 

sudo ubuntu-drivers [특정버전]

 

2) GUI를 사용하여 설치 (*추천*)

Application에서 소프트웨어&업데이트 => 추가 드라이버를 선택합니다.

 

 

 

원하는 버전을 선택하고 바뀐 내용 적용을 누릅니다.
버튼을 누르면 비밀번호 입력 창이 나옵니다. 이 비밀번호를 설정 후 리부트 합니다.

리부트 하면 파랑색의 창이 나오고, 그곳에 위 과정에서 설정한 비밀번호를 넣어줍니다.

 

위 2가지 방법 중에서 선택하여 Driver를 설치 후 확인을 해줍니다.

 

설치 확인을 위해 아래 명령어를 입력합니다.

 

nvidia-smi

 

 

**혹시나 아래의 2개의 명령어는 확인 후 입력하시기 바랍니다.**

** 2개의 명령어로 입력 후 컴퓨터가 부팅이 안되는 문제가 발생하였습니다. (nvidia-driver 문제) **

sudo apt install nvidia-prime
sudo prime-select nvidia

 

 

2. Docker 설치 및 Nvidia-Docker 설정

CARLA를 Docker에서 구동하기 위해 Docker를 설치합니다.

 

curl -sSL get.docker.com | sh

 

Docker는 기본적으로 sudo를 사용해야 합니다.

 

이를 막기 위한 명령어를 입력합니다.

 

sudo usermod -aG docker $USER

 

docker-compose 설치를 위해 아래 명령어를 입력합니다.


sudo curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

 

또는 아래 경로에서 docker-compose를 다운받습니다.

https://github.com/docker/compose

 

GitHub - docker/compose: Define and run multi-container applications with Docker

Define and run multi-container applications with Docker - docker/compose

github.com

 

일반적으로 Docker는 GPU를 사용할 수 없습니다.

Docker에서 GPU를 사용하기 위해서는 Nvidia에서 제공하는 Nvidia-Docker가 필요합니다.

Nvidia-Docker 설치 명령어를 입력합니다.

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \  
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \  
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \  
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \  
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

 

sudo apt-get update && sudo apt-get install -y nvidia-docker2

 

sudo systemctl restart docker

 

자세한 설정은 아래 경로를 참조해 주세요

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-apt

 

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.15.0 documentation

Install an NVIDIA GPU Driver if you do not already have one installed. You can install a driver by using the package manager for your distribution, but other installation methods, such as downloading a .run file intaller, are available. Refer to the NVIDIA

docs.nvidia.com

설정까지 완료 하였다면, 아래 명령어로 설치가 잘 되었는지 확인합니다.

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

 

만약 --runtime=nvidia에서 문제가 발생하면 아래 링크에서 nvidia toolkit과 config-docker 명령어를 입력 하면 됩니다.

여기까지 ubuntu20.04 LTS에서 nvidia-docker를 사용하여 docker에서 GPU를 사용하는 방법에 대한 설명이었습니다.

감사합니다 :)

Ref : https://antc2lt.medium.com/carla-on-ubuntu-20-04-with-docker-5c2ccdfe2f71

'개발일지 > docker' 카테고리의 다른 글

윈도우 10 docker설치  (0) 2022.03.04