MLOps

NVIDIA Docker 설치

kimjy 2022. 8. 8. 23:02

현재 회사에서 NVIDIA GPU 자원이 사용 가능한 도커가 필요했습니다. 따라서 NVIDIA Docker를 설치해야 했는데, 나중에 참고하기 위해서 설치 방법을 포스팅하도록 하겠습니다.

 

1. 먼저 도커를 설치합니다. 도커 설치에 사용한 명령어는 아래와 같습니다.

sudo apt-get install ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings`

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo   "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

 

그후 설치가 잘 됐는 지 확인을 하기 위해 docker ps 명령어를 입력하니 잘 작동되지 않았습니다. 이는 docker socket 접근에 권한이 없다는 문제였었고 아래와 같은 명령어로 권한을 부여했습니다.

sudo chmod 666 /var/run/docker.sock

 

docker ps 명령어로 도커가 잘 작동하는 것을 확인했습니다. 이제 NVIDIA Docker를 설치하도록 합니다.

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

sudo apt-get update

sudo apt-get install -y nvidia-docker2

설치가 완료되었으면, 설치가 잘 되었는지 확인합니다. 아래와 같이 간단한 컨테이너를 하나 띄워서 확인할 수 있습니다.

docker run --rm --gpus all ubuntu:18.04 nvidia-smi

그런데 에러가 발생합니다.

could not select device driver "" with capabilities: [[gpu]]. 와 같은 에러가 발생합니다. 구글링해보니 nvidia-container-toolkit을 설치하라고 하고, 설치는 아래와 같은 명령어로 가능하다.

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

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

그런데 위 명령어를 실행하면 이미 nvidia-container-toolkit이 설치되어있다고 합니다. 아마 nvidia docker를 설치하면서 같이 설치가 된 것 같습니다.

그러면 도커를 재실행해보도록 합니다.

sudo systemctl restart docker

그 후 다시 컨테이너를 띄우니 잘 됩니다.

'MLOps' 카테고리의 다른 글

Airflow 기초 사용법 및 DockerOperator  (0) 2022.08.10
모델 배포 및 모니터링 전략  (0) 2022.08.08
MLFlow 원격 모델 저장소에서 pytorch 모델 로딩 시 에러  (0) 2022.07.20
MLFlow  (0) 2022.07.04