관리 메뉴

Bull

[Docker:Dockerfile] windows10 wsl2 docker nvidia pytorch GPU사용하기 본문

DevOps/Docker

[Docker:Dockerfile] windows10 wsl2 docker nvidia pytorch GPU사용하기

Bull_ 2024. 4. 13. 08:27
# 사용할 베이스 이미지
FROM pytorch/pytorch:latest

# PyTorch 및 Jupyter 설치
RUN conda install pytorch
RUN conda install torchvision
RUN conda install jupyter
RUN apt-get update
RUN conda install cudatoolkit=11.8 cudnn -c pytorch


# 작업 디렉터리 설정
WORKDIR /workspace

# Jupyter Notebook 설정 (옵션: 비밀번호 설정 등)
# 이 예제에서는 비밀번호 없이 모든 IP에서 접속 가능하게 설정
RUN jupyter notebook --generate-config --allow-root
RUN echo "c.NotebookApp.ip = '0.0.0.0'" >> ~/.jupyter/jupyter_notebook_config.py
RUN echo "c.NotebookApp.allow_root = True" >> ~/.jupyter/jupyter_notebook_config.py
RUN echo "c.NotebookApp.open_browser = False" >> ~/.jupyter/jupyter_notebook_config.py
RUN echo "c.NotebookApp.port = 8888" >> ~/.jupyter/jupyter_notebook_config.py

# 포트 8888 노출
EXPOSE 8888

# Jupyter Notebook 실행
# CMD ["jupyter", "notebook", "--allow-root"]

처음에 VMware로 리눅스환경에서 설치했다가 VGA를 자체 어댑터로 밖에 지원안한다는 사실을 하고 며칠 몇 시간 동안 날리고,

 

도커로 하면 GPU 인식된다는 사실을 알고 블로그에 있는 글 모두 긁어모아 따라해봤지만,

 

되는 게 없었다....

 

cudatoolkit, cudnn, docker-nvidia pytorch 버전도 항상 맞추어 줬는데, 윈도우 버전을 맞춰야하는 건지

 

WSL2 환경에서 깔린 버전을 맞춰야 하는건지... 정말 교묘하게 환경설정이 꼬여서 이 GPU좀 써보겠다고 총 날린 시간을 합쳐보면 15시간은 되는 거 같은데....

 

 

 

결론적으로  GPU 인식은 도커에서 됐는데 버전 맞추는 게 계속 잘못되었던 것 같다.

 

 FROM  pytorch/pytorch:latest이 베이스이미지에서 구축하니까 제대로 된다는 것을 알았다.

 

지금보니 저 conda 명령은 없어도 될 거 같긴한데.... 귀찮으니 일단 블로그에 저장해두고 사용하려고 한다.

 

포스팅 제목이 너무 웃긴 거 같은데ㅋㅋ

 

진짜 말 그대로 윈도우에 도커를 깔고 WSL2으로 윈도우 자원을 이용해 도커로 접근하는 요상한 방법으로 한다.

 

wsl, 도커는 맛보기로 몇 번 써보긴 했는데 이런식으로 맞물려서 사용되는 것을 보고 신기했다.

 

 

분명 윈도우 환경인데 bash shell을 쓰는 장면... 여기서 docker를 키면 윈도우에서 인식이 된다. 개신기.

 

실행


sudo docker run -p 8888:8888 --cpus 6 --memory 20g --gpus all -it --rm pytorch-jupyter

jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root