파이썬에서 anaconda3도 많이 사용하지만 anaconda3 만을 사용해서 오픈소스를 재현하기에는 돌발상황이 많이 발생합니다.
예를 들어, pip install -r requirements.txt 로 install을 한방에 할 수 있습니다. 하지만 이 경우에 생길 돌발상황들은
- requirements.txt 관리를 하지 않아 패키지간 confilct가 생겨 설치가 되지 않음.
- 파이썬 버전과 패키지간 호환이 되지 않아 설치가 되지 않음.
- CUDA, cudnn 별도 설치
- 다른 오픈소스를 사용해보고 싶을 경우 CUDA, cudnn path를 계속 바꿔줘야함
- 등등 예상치 못한 설치 실패 상황이 다수 발생할 수 있음
이런 수 많은 삽질과 돌발 상황들이 많이 있습니다.
그렇기 때문에 요즘은 오픈소스에서 재현을 편하게 해보기 위해서 github에 Dockerfile을 많이 올려두는 추세입니다.
Dockerfile로 빌드를 하면
- pip install을 필요한 것만 하거나, 아예 하지 않아도 됨
- CUDA, cudnn 설치를 하지 않아도 됨
- Python 부터 환경을 만들어주지 않아도 됨
더 장점이 많을 것이지만 대표적으로 이런 장점이 있습니다.
이런 장점들을 누리기 위해서는 docker에 익숙해질 필요가 있습니다. 예시를 들어 함께 실습을 하나 해보도록 하겠습니다.
1. mmpretrain github를 clone 받습니다.
git clone <https://github.com/open-mmlab/mmpretrain.git>
2. Dockerfile이 있는 docker 폴더로 들어가서 Dockerfile을 빌드합니다.
docker build -t mmpretrain:v1 .
3. 빌드된 docker image로 컨테이너를 만듭니다.
docker run -it -d \\
--ipc=host \\
--gpus all \\
--name mmpretrain_v1 \\
-v /클론받은경로:/도커내에서연동할경로
mmpretrain:master \\
/bin/bash
4. 테스트를 한번 해봅니다. mmpretrain으로 테스트를 하는 방법은 아래 링크에 있습니다.
https://beelinekim.tistory.com/100
다른 github 오픈소스에서도 Dockerfile이 많이 때문에 이런 방식으로 빌드를 해서 쓰게 되면 수많은 오픈소스들을 내 컴퓨터에서 테스트를 해볼 때 상당히 도움이 됩니다.
도움이 되셨다면 아무 광고나 클릭 한 번 부탁드립니다👍