본문 바로가기

IT/리눅스

우분투(Ubuntu)에 docker 및 nvidia-container-toolkit 설치하기

반응형

우분투에 딥러닝 환경을 구성하기 위해서 도커 설치화 nvidia 관련 도구를 설치하는 과정을 설명한다.  

 

전에는 Centos나 rockylinux에서 주로 사용하였었는데 이번에 우분투 20.04에 설치하려고하니 약간 다른점이 있어서 정리한다. 

 

참고적으로 다음은 Rocky8에서 설치한 과정이다. 

 

https://yongeekd01.tistory.com/22

 

4 Rocky Linux Docker 설치(GPU 있을때/없을때) - Rocky Linux 설치 및 Nvidia Docker 환경 만들기(9)

4.1 docker 설치 (Nvidia GPU 불필요시) yum install -y yum-utils yum update yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io >docker --version Docker version 23.0

yongeekd01.tistory.com

 

1. Docker 설치 

 

Repo 등록 

 

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

 

원하는 버전 목록 확인

 

도커를 무조전 최신 버전을 설치하면 nivida toolkit이 정상 동작 하지 않을때가 있으며 권장하는 도커 버전이 있다. 

여기서는 20.10을 설치한다. 

 

apt-cache madison docker-ce

 

 

원하는 버전을 지정하여 아래와 같이 설치하면 된다. 

 

apt-get install docker-ce=5:20.10.12~3-0~ubuntu-focal containerd.io

 

2. nvidia-container-toolkit 설치 

우분투 버전에 맞는 패키지를 찾기

(확인 해보면 nvidia-container-toolkit은 18.04 이후로 업데이트가 없다. 22.04에서 설치해도 이전 버전으로 링크된다) 

 

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

 

패키지 목록 갱신 


apt-get update

 

패키지 설치 


apt-get install -y nvidia-container-toolkit

 

3. daemon.json 파일 수정 

 

도커는 기본적으로 설치하면 /var/lib/docker로 기본 패스가 설정되어 docker 이미지나 컨테이너 생성시 해당 위치를 사용하게 된다. 
하지만 일반적으로 /var가 속한 파티션은 크기가 크지 않아 많은 도커를 운용할 때 디스크 용량 문제에 부딛히게 된다.

여기서는 /home/docker 패스에 1T SSD를 마운트 하여 도커 전용으로 사용하기 위해 /var/lib/docker기본 패스를 변경하여 /home/docker/docker_data에서 이미지와 컨테이너 데이터를 관리하도록 변경한다 

>mkdir -p /home/docker/docker_data
>vi /etc/docker/daemon.json 


파일 수정 (없으면 생성)

{

    "graph":"/home/docker/docker_data",

 

    "runtimes": {

        "nvidia": {

            "path": "nvidia-container-runtime",

            "runtimeArgs": []

        }

    }

}

 

도커 데몬 재시작 

 

systemctl restart docker.service

 

도커 데몬 상태확인 

 

systemctl status docker.service

 

 

설치된 도커와 base path 변경된 것 확인 

 

 

 

반응형