본문 바로가기
devops/docker

[docker] pytorch 컨테이너 생성 후 컨테이너 안에서 jupyter lab 실행

by anjulia 2023. 4. 17.

Pytorch 컨테이너 생성하기

 

본인의  cuda version을 확인 후에 그에 알맞는 pytorch image 파일을 다운로드 받아야 한다. 

 

-> cuda 사용 가능한 pytorch image 파일을 다운로드 받는다고 생각하자.

 

 

cuda version은 

 

nvcc -V

를 이용해서 확인한다.

 

 

 

지금 내 리눅스에 깔린 cuda version은  11.5버전이다.

 

 

 

https://hub.docker.com/r/pytorch/pytorch/tags

 

Docker

 

hub.docker.com

위의 사이트에서 본인의 cuda version과 맞는 pytorch image 파일을 다운로드 하는 명령어를 복사해온다. 

 

 

필자는 11.5버전이 없어서 11.7버전을 다운로드 했다. 

 

 

 

doker images 명령어를 통해서 pytorch image가 설치되었는지 확인한다. 

docker images

 

 

cuda 사용가능한 pytorch image 파일이 설치 되었음을 확인했고,

이제 다운받은 image를 가지고 pytorch 컨테이너를 생성한다. 

 

 

 

컨테이너 생성 옵션은 

--it  : 컨테이너의 shell이나 CLI 도구를 사용할 때 쓰는 옵션

–gpus all : Container 내부에서 GPU를 쓸 수 있도록 한다. nvidia toolkit이 설치되어 있어야 한다.

--name : Container의 이름을 지정.

/bin/bash    :      Container 생성 시 시작할 프로세스이다

 

 

 

docker run -it --gpus all --name pytorch-test pytorch/pytorch:2.0.0-cuda11.7-cudnn8-devel /bin/bash

 

 

pytorch-test라는 이름의 컨테이너 안으로 들어오게되고, 

여기에서 python을 실행 해 

pytorch가 import 되는지 , cuda가 잡히는지 확인한다.

 

import torch
torch.cuda.is_available()
torch.cuda.device_count()
exit() # 확인 후 파이썬 종료

 

pytorch-test 컨테이너 안에 jupyter lab을 설치한다. 

 

 

conda install jupyterlab

 

 

컨테이너에서 여태까지 한 작업을 image파일로 commit 하기 

 

일반적으로 도커 컨테이너 상에서 작업한 내용들은 컨테이너가 종료되면 함께 사라진다. 따라서 도커 컨테이너 상에서 작업한 내용을 이미지로 커밋(commit)하여 나중에 해당 이미지로 다시 컨테이너를 실행함으로써 작업했던 내용을 다시 사용할 수 있다.

 

먼저 컨테이너를 exit로 종료한 후 

docker ps -a 로 방금 종료한 컨테이너 아이디를 확인한다. 

 

그 후에 

 

docker commit 2b956d5b4887 pytorch-test:new-version

 

docker commit (컨테이너 아이디) (이미지 아이디)

 

으로 명령어를 입력한다. 

 

결국엔 컨테이너 안에 jupyter lab 설치 한 후에 커밋한 것이다. 

 

 

커밋으로 생성된 이미지로 컨테이너를 실행한다. 

 

 

Pytorch 컨테이너에서 jupyter lab 실행하기 

 

다음에는 웹 브라우저에서 jupyter lab을 실행할 수 있게 아래 명령어를 입력한다. 

 

 

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

 

 

 

그런데,  출력 결과로 나온 웹브라우저를 실행 할 수 없었다. 

 

 

 

컨테이너를 exit로 빠져나오고 

 

docker run -it --gpus all -p 8888:8888 pytorch-test:new-version

명령어를 입력해서 다시 컨테이너를 접속한다. 

 

컨테이너 실행시 -p 8888:8888 을 반드시 사용해서 접속해야한다고 한다.  안쓰면 웹브라우져 켤수없다.

 

그 이후에 다시 

 

 

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

명령어 실행 후 나오는 웹브라우저 링크는 접속이 가능하다.

 

 

 

 

 

참고 

 

 

https://velog.io/@ho-tae/%EB%8F%84%EC%BB%A4Docker-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%83%9D%EC%84%B1

 

도커(Docker) 이미지 생성

이미지 생성 방법은 다음과 같은 3가지가 존재합니다. 베이스 이미지를 pull 하여 이미지를 얻을 수 있습니다.Dockerfile는 컨테이너에 필요한 패키지, 소스코드 등을 기록해둔 파일로 빌드를 하면

velog.io

https://tttsss77.tistory.com/230

 

도커(Docker) : 이미지 커밋(업데이트)하기

개요 일반적으로 도커 컨테이너 상에서 작업한 내용(예: 인터넷으로부터 파일을 다운로드하거나 파일의 내용을 변경하는 등)들은 컨테이너가 종료되면 함께 사라집니다. 도커 컨테이너 상에서

tttsss77.tistory.com