D_ontory : 개발스토리

[Ubuntu 22.04] Docker 설치하기 + Nvidia docker2 설치하기 본문

Linux and Docker

[Ubuntu 22.04] Docker 설치하기 + Nvidia docker2 설치하기

D_on 2023. 6. 13. 14:24
반응형

 

갑자기 서버 오류로 인해 기존 우분투(Ubuntu)를 밀고 새로 설치해야 하는 상황이 왔다....
이렇게 된 이상 pytorch 2.0 맛이나 보자 하고, ubuntu 부터 cuda, cudnn, docker 등등 개발에 필요한 환경을 모두 새로 설치하고 있다.

설치 되어 있는 상황이 당연했는데, 이렇게 하나씩 모두 설치해야 된다는 것을 다시 한 번 깨닳게 되는 경험이었다^^
아무튼, 이런 일이 두번, 세번 다시 일어나지 않으리란 보장은 없기에 정리를 해보도록 하자....

 

원하는 개발환경

- Ubuntu 22.04
- CUDA 12.1  /  cuDNN 
- GPU NVIDIA TITAN RTX

 

필요 패키지 다운로드
## Ubuntu 시스템 패키지 update 
sudo apt-get update

## 기본 필요 패키지 다운로드
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

 

Docker 다운로드
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 를 실행하면 잘 되야 하지만, 나는 오류가 났다.
(한번에 될리가 없지 ^^.....)

apt-get update 시 오류 :
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)

 apt-get install -y docker-ce docker-ce-cli containerd.io  오류 :
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

제대로 설치가 안된 것이 확실하지만 일단 도커 버전을 확인해보자.

docker version

# sudo snap install docker         # version 20.10.24, or
# sudo apt  install docker.io      # version 20.10.21-0ubuntu1~22.04.3
# sudo apt  install podman-docker  # version 3.4.4+ds1-1ubuntu1

docker 버전을 물어보니, 해결책을 제시해 주었다.
ubuntu 버전에 따라서 설치하는 방법이 조금씩 바뀐듯 싶었다.

나는 22.04 이므로, sudo apt install docker.io 를 적용해보겠다.

sudo apt install docker.io

# 다시 한번 더!
docker version

# error message :
# Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied

무언가 권한이 없다는 오류메세지가 뜬다.

 

sudo chmod 666 /var/run/docker.sock

 위 명령어를 적용하고 다시 docker version 을 입력해보면 정상적으로 출력되는 것을 볼 수 있다!

 

 

Nvidia-docker2 설치

nvidia docker 설치는 gpu를 사용하여 도커 컨테이너를 돌린다면 필수로 설치해줘야 한다.
나는 nvidia container image를 자주 사용하기 때문에 nvidia docker를 아주 잘 쓰고 있다.

- docker run --rm --gpus all ubuntu:18.04 nvidia-smi
대부분 컨테이너를 생성할 때 --gpus all 을 사용할텐데, 이게 가능 한 이유가 nvidia docker를 설치했기 때문이다.
(정확하진 않지만... 아무튼 오류 있으시면 언제든지 말씀해주세요!)

뿌듯하게 docker 설치를 끝냈지만, 학습하던 환경을 구성하기 위해서는 nvidia docker 까지 설치를 완료해야 한다.

sudo apt-get install -y nvidia-docker2

# Reading package lists... Done
# Building dependency tree... Done
# Reading state information... Done
# E: Unable to locate package nvidia-docker2

보편적인 방법으로 설치를 해보려 하는데, 무언가 되지 않는다. pakage가 없다는 것 같았다.

진짜 한번에 되는 일이 없다^^

 

sudo apt-get upgrade


## 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
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

# 마지막으로 다시 업데이트!
sudo apt-get update


# nvidia-docker2 설치
sudo apt-get install -y nvidia-docker2

일단 우분투 패키지들을 업데이트 해주고, GPG 키와 저장소를 추가해줘야 한다.
이렇게 하면, 무언가 안되던 것이 설치가 되기 시작한다.

## Test!

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


"""

Unable to find image 'ubuntu:18.04' locally
18.04: Pulling from library/ubuntu
7c457f213c76: Pull complete
Digest: sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98
Status: Downloaded newer image for ubuntu:18.04
Tue Jun 13 05:14:41 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.41.03              Driver Version: 530.41.03    CUDA Version: 12.1     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                  Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf            Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA TITAN RTX                Off| 00000000:1A:00.0 Off |                  N/A |
| 41%   33C    P8               31W / 280W|      6MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA TITAN RTX                Off| 00000000:68:00.0 Off |                  N/A |
| 41%   34C    P8               23W / 280W|     15MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
+---------------------------------------------------------------------------------------+

"""

테스트용 도커 이미지를 생성 했을 때 저런 화면이 나온다면 성공!

 

 

 

 

 

 

반응형
Comments