Ubuntu 22.04 (nvidia) Docker 설치하기

안녕·2023년 11월 29일
0


본 페이지에서는 Ubuntu 22.04에서 Docker를 설치하고, nvidia-docker를 설치까지 다루겠습니다.

들어가기 전 본 페이지에서는 Docker Desktop이 아닌, Docker Engine을 설치합니다.

Docker


Get Started | Docker

Install Docker Desktop on Ubuntu <- 도커 데스크탑 설치 시 참고

Install Docker Engine on Ubuntu

1. Install Using the apt repository

도커를 설치하기 전, 도커 저장소를 설정해야합니다.

Set up Docker's apt repo

# 업데이트 및 apt가 HTTPS를 사용할 수 있도록 해주는 패키지 설치
$ sudo apt-get update
$ sudo apt-get install ca-certificates curl gnupg

# 도커 공식 GPG키 추가
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Set up Repository
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$UBUNTU_CODENAME") 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-buildx-plugin docker-compose-plugin

설치 확인

sudo docker run hello-world


도커를 사용하려면, 루트 사용자의 권한이 필요합니다.
하지만, 일일히 sudo를 입력하기 귀찮으니, sudo 없이 사용할 수 있도록 설정하겠습니다.


2. sudo 없이 도커 사용하기

sudo 없이 사용하기

$ sudo usermod -a -G docker $USER
# 이후 재부팅
$ id
uid=1000(gyu) gid=1000(gyu) groups=1000(gyu),..생략..,999(docker)
# 출력에 docker가 있는지 확인합니다. 

3. Nvidia Docker 설치

nvidia 공식문서

Configure the repository

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/stable/deb/nvidia-container-toolkit.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

Install the NVIDIA Container Toolkit packages

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

설정 및 nvidia를 기본 런타임으로 변경

Configure the container runtime

sudo nvidia-ctk runtime configure --runtime=docker
# nvidia-ctk 명령어로 /etc/docker/daemon.json 파일 생성 후 수정

Restart Docker daemon

sudo systemctl restart docker

Configure the container runtime "containerd"

sudo nvidia-ctk runtime configure --runtime=containerd

# 위와 같음. /etc/containerd/config.toml을 수정함

Restart Docker daemon

sudo systemctl restart containerd

CRI-O는 사용하지 않기에 추가하지않음.

docker의 기본 런타임을 nvidia로 수정

sudo vi /etc/docker/daemon.json
{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    }
}

+ Docker 경로 변경

도커의 기본 경로는 /var/lib에 위치합니다. 만약, /에 용량을 적게 할당했거나, 다른 볼륨에서 도커 이미지, 컨테이너 등을 사용하고 싶다면 이 방법을 사용합니다.

docker 기본 경로 확인

docker info | grep Root
Docker Root Dir: /var/lib/docker

docker 기본 경로는 /var/lib/docker

도커 기본 저장 경로 변경

sudo systemctl stop docker
sudo vi /etc/docker/daemon.json
{
    "default-runtime": "nvidia",
    "data-root": "/path/to/location", <-- 이 곳에 원하는 경로를 입력합니다.
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    }
    
}
sudo systemctl daemon-reload
sudo service docker restart

# 확인
docker info | grep Root
profile
화이팅

1개의 댓글

comment-user-thumbnail
2024년 10월 9일

덕분에 문제를 해결했습니다! 감사합니다~

답글 달기