딥러닝 모델은 수많은 실험 과정을 통해 최적의 결과를 도출해내야 한다. 따라서 많은 사람이 동일한 환경에서 실행해야 정확한 결과를 얻을 수 있게 된다. 그러나 로컬환경에서 딥러닝 환경을 구축해본 경험이 있다면 모든 사람이 동일한 환경에서 실험을 진행하는 것이 어렵다는 것을 알 것이다. 따라서 보토 아나콘다를 활용해 가상환경을 동일화 할 수 있지만, 이는 서로다른 OS에서 호환인 안된다는 문제가 발생한다. 또한 cuda version이 달라 어떤 cuda version에서는 pytorch가 작동하지 않고, 어떤 cuda version에서는 pytorch lightning이 작동하지 않을 수 있다는 문제점이 발생한다. Docker를 사용한다면 이러한 문제점들을 해결할 수 있다. Pytorch docker image를 활용해 간편하게 딥러닝 환경을 구축할 수 있다. 아래의 그림과 같이 dockerfile을 이용해 docker image를 만들어도 되지만 간편하게 pytorch image만들 활용해 만드는 방법에 대해 알아보자.

우선 해당 OS에서 도커를 설치해준다.
# docker 설치 확인
$ docker
# docker 제거
$ sudo apt purge docker-ce# docker 설치
curl -fsSL https://get.docker.com/ | sudo sh만약 설치가 안된다면 아래의 글을 참고하면 좋다.
설치가 완료되면 해당 명령어를 입력해 도커가 성공적으로 작동하는지 확인하면 된다.
sudo docker run hello-worldPython, Machine & Deep Learning
다운로드 받는 이미지는 자신의 그래픽카드 사양에 맞추어 진행해야 한다. 필자의 경우 RTX 3090을 사용하기 때문에 다음과 같은 Pytorch 이미지를 다운로드 받았다. 다양한 버전들을 다운로드 받아보고, 추후 컨테이너에 접속에 cuda가 호환이 되는지 확인하면 된다.
docker pull pytorch/pytorch:1.7.1-cuda11.0-cudnn8-runtime다운로드 받은 이미지를 확인하기 위해 다음 명령어를 입력해주면 된다.
docker images다운로드 받은 이미지를 활용해 컨테이너를 생성해 준다.
docker run -it --gpus all --name [user_name] pytorch/pytorch:1.7.1-cuda11.0-cudnn8-runtime /bin/bash완료된 컨테이너는 다음 명령어를 통해 확인할 수 있다.
#종료된 컨테이너 모두 확인
docker container ps -a
#실행중인 컨테이너만 확인
docker container ps생성이 완료되면, 해당 컨테이너로 들어가게 된다. 만약 컨테이너를 완전히 나가고 싶다면 ctrl + D 명령어를 통해 나올 수 있다. 만약 컨테이너는 실행시켜놓고 잠시 나가는 거라면 ctrl + P + Q로 나가면 된다. Pytorch 이미지로 만든 컨테이너의 cuda 버전이 맞는지 확인하는 방법은 다음과 같다.
#python 명령어를 통한 python script 입성
python 
import pytorch
# GPU check
torch.cuda.is_available()
# GPU 정보 확인
torch.cuda.get_device_name(0)
# 사용 가능한 GPU 개수
torch.cuda.device_count()
# 현재 GPU 번호
torch.cuda.current_device()
# device 정보 반환
torch.cuda.device(0)이후 컨테이너(가상OS)에 필요한 도구들을 설치해 준다.
apt-get update
apt-get install git vim wget이러한 과정을 완료하면 컨테이너에 접속이 가능하다.