cuda버전 10.1이 설치된 상황인데 더 높은 버전이 필요한 상태이다. 그럴 때 해당 방법을 쓰면 해결 될 것 같다. (아직 안해봄)
Docker CUDA Image 가져와서 딥러닝 환경 세팅까지
기존 서버 : Ubuntu 18.04 CUDA 10.2 NVIDIA RTX 2080 Ti 위에 CUDA 10.0 도커를 구동해야 하는 상황이 왔다. 학습용 코드가 tensorflow-gpu==1.13.1, keras==2.2.4를 지원하는데 버전을 맞추기 위해서는 CUDA 10...
huhji2newv.tistory.com
1. Docker Pull from Docker Hub
docker hub에서 적당한 docker image 검색
nvidia/cuda 공식 이미지 중에서 CUDA 10.0, cudnn7, ubuntu 18.04용 tag를 검색합니다.
너로 정햇다!
10.0-cudnn7-runtime-ubuntu18.04 이미지를 선택합니다.
docker pull nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04
docker pull 명령어 뒤에 가져오고 싶은 docker image tag 입력
아래와 같이 나오면 성공입니다.
도커 이미지를 잘 받아왔는지 확인
docker images
순서대로 REPOSITORY, TAG, IMAGE ID, CREATED, SIZE 입니다.
2. Docker TAG 변경
한 서버에서 구동하고 있는 도커가 많고 저 TAG명을 그대로 쓰기는 어려우니
REPOSITORY와 TAG이름을 변경해봅시다.
docker tag 기존 REPOSITORY:기존TAG 바꿀REPOSITORY:바꿀TAG
docker tag nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04 trainserver:cuda10.0
docker images로 확인해보면 다음과 같이 새로운 docker image가 생성되었음을 알 수 있습니다.
IMAGE ID는 같고 REPOSITORY와 TAG이름만 다른 것을 확인!
3. Docker RUN with PORT
이제 도커이미지를 컨테이너로 올리는 작업이 남았다.
처음에 이 개념이 잘 이해가 안됐는데, Docker Hub에서 가져온 이미지를 붕어빵 틀로 생각하고
원하는만큼 붕어빵, 즉 컨테이너를 만들 수 있다고 생각하면 된다.
도커를 설치한 서버는 서버실에 있고 나는 ssh를 통해 원격으로 작업해야 하는 상황이므로
port를 뚫어주는 작업을 같이 했다.
docker run <옵션> <이미지 이름> <실행될 장소>
docker run 명령어에 필수적으로 들어가야 하는 옵션에 -it 가 있다.
예전 도커 버전에는 -i와 -t를 따로 쓰기도 했는데 지금은 -it로 붙여 쓸 수 있다.
-i (=interactive) : 사용자와 상호작용 할 수 있는 표준입출력을 제공한다는 명령어이다.
-t (=tty) : 텍스트 기반의 터미널(pseudo-tty)를 사용가능하게 해준다. (bash 셀 사용할 때!)
-gpus : 특정 gpu만 할당
-p : <호스트 포트> : <컨테이너 포트>
즉, 도커 컨테이너를 굽고 bash에 접속해서 딥러닝 무언가를 학습할 계획이라면 무조건 적어야 하는 명령어...
docker 공식 페이지를 참고하세요!
docker run -it --names="jhhuh_cuda10.0" --gpus "device=1" -p 32805:22 -p 32609:8888 trainserver:cuda10.0 /bin/bash
지금의 경우에는 내컴퓨터에서 ssh 원격으로 서버 컴퓨터에 접속해야 하므로
서버 호스트의 22번 포트를 32805번 포트로 열어주었다.
위 명령어를 실행한 후
docker ps -a
를 통해 도커 컨테이너 확인.
도커를 실행시켜주면 PORT가 열린다.
docker start <컨테이너 ID>
'IT > Docker' 카테고리의 다른 글
[Docker] Systemctl 오류 (0) | 2021.11.25 |
---|---|
[Docker] Docker compose (0) | 2021.11.23 |
[Docker] WSL + Docker + GPU + Pytorch + Jupyter notebook (0) | 2021.11.16 |
[Docker] 도커 파일 복사 (로컬 <-> 컨테이너) (0) | 2021.05.24 |
[Docker] Docker User Guide (0) | 2021.05.24 |