AI분석에는 GPU를 자주 사용하게 된다. 따라서 GPU설정이 필요한데, Nvidia에서 만든 Docker를 추가로 설치해주어야 운용이 가능하다.

NVIDIA Docker설치

먼저 저장소 및 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

Nvidia Docker를 설치하자.

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

Nvidia Docker를 설치했다면 서비스를 재시작하자.

sudo systemctl restart docker

정상 설치가 되었는지 아래 명령어로 확인해보자.

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

만약 설치가 제대로 되지 않았다면 장치를 확인해보자.

lshw -C display

설치가능목록 조회 및 권장설치

ubuntu-drivers devices
ubuntu-drivers autoinstall

sudo apt-get install nvidia-driver-[버전]
sudo apt-cache search NVIDIA driver metapackage # 설치가능 버전 확인 

재부팅 후 nvidia-smi 명령어를 통해 설치를 확인 가능

분석환경 구축

딥러닝 관련 이미지들이 많이 있으나 아래 이미지가 가장 편리할 것 같아서 해당이미지로 설정을 진행했다.

sudo docker pull ufoym/deepo

도커 자료를 저장할 경로를 설정하자.

mkdir -p /project/jupyter

아래 도커를 설치하게 되면 주피터 노트북으로 접속가능한 환경이 생성된다.

sudo docker run -d --gpus all -it \
  -p 8888:8888 -p 6006-6015:6006-6015 \
  -v /project/jupyter:/data \
  --name lab \
  --restart=unless-stopped \
  --ipc=host eungbean/deepo:lab \
  jupyter lab --no-browser \
  --ip=0.0.0.0 \
  --allow-root \
  --NotebookApp.token= --notebook-dir='/data'

추가로 아래 설치를 진행하면 vs code 서버로 접속가능한 환경이 생성된다.

sudo docker run -d --gpus all -it \
  -p 7000:8080 -p 7006-7015:6006-6015 \
  --name vs \
  -v /project/jupyter:/data \
  --restart=unless-stopped \
  -e PASSWORD="비밀번호" \ 
  --ipc=host eungbean/deepo:code /coder/code-server

주피터랩에 비밀번호가 없는데 아래 명령어를 통해 도커 환경에 접속한 뒤 비밀번호를 생성하면 된다.

docker exec -it lab bash
jupyter notebook password

GitHub - eungbean/Docker-for-AI-Researcher
Contribute to eungbean/Docker-for-AI-Researcher development by creating an account on GitHub.