반응형
# 파이토치 이미지 선택
도커허브에서 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이라는 폴더를 기본 저장소로 사용하는 것을 확인할 수 있다.
반응형
댓글