본문 바로가기
가상화 - vmware, docker/docker

[Docker] - windows환경에서 pytorch 컨테이너 생성, 재시작 및 폴더 마운트

by 프룹 2021. 12. 21.
반응형

# 파이토치 이미지 선택

도커허브에서 pytorch 검색 후 여러 이미지 중 'pytorch/pytorch'를 들어가 Tags를 누르면 그 안에서 여러 이미지를 또 검색할 수 있다. 기존에 개발하던 환경과 동일한 cuda 10.2 버전을 선택해서 pull 하였다.

 

# 컨테이너 생성 - gpu버전으로 생성

1. gpu 버전 생성 <- 밑에 특정 디렉토리랑 마운트 시키는 코드가 또 있다.

docker run -it --gpus all --name 'deep_1' pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
 -> run은 새로운 컨테이너를 생성하고 실행하는 명령어, run으로 이미 생성된 컨테이너에 연결할 수 없다

다음과 같이 '--gpus all'을 붙여야 gpu를 사용할 수 있다.

 * nvidia-smi

  -> 사용하고 있는 2개의 gpu가 인식된다.

 * torch.cuda.is_available()

  -> True 로 나온다.

 

2. non-gpu 버전 생성

docker run -it --name 'deep_2' pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel

 * nvidia-smi

  -> 없는 command라고 나온다.

 

 * torch.cuda.is_available()

  -> False

 

# 컨테이너 실행, 재실행

컨테이너를 재실행하는 방법은 docker run 명령어가 아니다!

매번 gpu를 사용한다고 설정해야 하는 줄 알았는데, 그게 아니라 최초에 컨테이너를 만들 때 gpu를 사용한다고 설정하고 만들면 그 이후로는 계속적으로 gpu를 사용할 수 있다.

 

docker start deep_1
 -> 컨테이너 실행. 다만, 터미널에서 입출력은 불가능하다.
docker attach deep_1 (추천)
 -> 터미널로 연결 됨. 명령어 입출력이 가능해진다.
docker exec -it deep_1 /bin/bash
 ->실행중인 컨테이너에 명령, -it 옵션을 통해 attach 처럼 지속적으로 명령어를 칠 수 있다.

 

# 컨테이너랑 특정 폴더랑 마운트 하기

위에서 컨테이너를 gpu버전으로 생성하는 명령어는 파일을 관리하는 저장소가 다른곳에 생성된다.

다음 코드를 이용하면 특정 디렉토리를 저장소로 사용할 수 있다.

 

docker run -it --gpus all -v D:\deep_1:/workspace --name 'deep_1' pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel

 

이미지를 생성한 deep_1 컨테이너가 D드라이브에 deep_1이라는 폴더를 기본 저장소로 사용하는 것을 확인할 수 있다.

 

반응형

댓글