회사에서 개발을 진행할 때, 개발 환경은 Linux이고 Docker를 활용할 확률이 높다.
나 같은 경우, 개인 PC(노트북)에서 GPU서버에 접속하여 Docker Container에 개발 환경을 구축했다.
만약 이 환경에서 app.py 파일을 만들고 개발을 진행한다고 하면
개인 PC -> GPU 서버 -> Docker Container -> Project Directory -> app.py 작업 순일 것이다.
Docker 드라이브 마운트를 통해 서버에는 파일만 존재하고 app.py를 가동하는 데 필요한 Python, 라이브러리 등은 Container에 존재한다.
1. 개인 PC -> GPU 서버
여기서 GPU 서버에 접속하기 위해 필요한 작업이 SSH 연결이다.
MobaXterm은 이 작업을 매우 편리하게 해주는 무료 라이선스 Tool이다.
MobaXterm에 대한 설명과 접속 방법은 아래 블로거 분이 잘 정리해 주셨고 이 외에도 구글링 하면 잘 나온다.
[MobaXterm] 모바엑스텀 설치 및 사용법(Linux SSH 접속)
이번에 Linux 환경을 사용할 때 매우 유용한 Tools인 MobaXterm 설치 및 사용법에 대해 정리할 것입니다. [ 목차 ] MobaXterm 설치 방법 MobaXterm 사용법(SSH 접속 및 FTP 등) MobaXterm이란? 설치 방법에 대해 정
backendcode.tistory.com
2. GPU 서버 -> Docker Container
인공지능 개발을 위해 GPU를 사용해야 한다. 서버에는 nvidia driver, cuda 등 설치되어 있지만, 서버에서 생성한 Docker Container의 환경은 별개라고 생각해야 한다. 즉, Container에서 서버의 자원인 GPU에 액세스 하기 위한 설정이 필요하다.
이미 구글링을 했다면, 다양한 커멘드를 접했을 것이다.
docker run --gpus all ~
docker --runtime=nvidia ~
nvidia-docker run ~
여러 블로그의 방법을 혼합하여 시도한다면 버전문제와 충돌로 어디선가 막힐 것이다. 버전이 업그레이드 됨에 따라, Docker 19.03부터는 Docker에서 자체적으로 nvidia runtime을 지원하기 때문에 첫 번째 커멘드를 사용하면 된다.
나는 이전 버전을 삭제하고 20.10.x 버전을 설치했다.
아래 커멘드가 문제없이 실행되면 성공이다. cuda 버전은 사양에 따라 수정해야 한다.
docker run --gpus all nvidia/cuda:11.6-base nvidia-smi
docker 설치시 참고한 블로그는 아래와 같다.
nvidia-docker가 지원되는 docker 최신 버전으로 업그레이드
원래는 docker conatiner 내에서 nvidia GPU를 사용하기 위해 nvidia-docker 혹은 nvidia-docker2를 따로 설치해줘야했다. 하지만 docker 19.03 버전부터는 docker 자체적으로 nvidia GPU를 지원하고 nvidia-docker는 사용하
conservatory.tistory.com
nvidia-container-toolkit 설치는 공식 docs를 참고했다. 위 블로그와 같이 보도록 하자.
Installation Guide — container-toolkit 1.13.1 documentation
On RHEL 7, install the nvidia-container-toolkit package (and dependencies) after updating the package listing: Restart the Docker daemon to complete the installation after setting the default runtime: Note Depending on how your RHEL 7 system is configured
docs.nvidia.com
이미지 빌드시 참고한 블로그는 아래와 같다. 이미지 빌드할 때, FROM 부분의 Cuda 버전은 서버 사양에 맞춰주는 것이 좋다.
GPU 개발환경 구축하기: Docker를 활용하여 개발환경 한 번에 구축하기
GPU 개발환경을 위한 docker image를 빌드해봅시다.
velog.io
오류 해결 with ChatGPT
docker 설치 오류
설치 중에 `docker-ce` 패키지 설정 단계에서 오류가 발생했습니다. `docker-ce` 패키지 설정 스크립트에서 1의 오류 상태가 반환되었는데, 이로 인해 설치가 실패하였습니다. 이 오류를 해결하기 위해 몇 가지 단계를 시도해 볼 수 있습니다.
1. `sudo apt-get install -f` 커맨드를 사용하여 종속성 문제를 해결하고 패키지를 제대로 설치해 보세요. 다음과 같이 실행합니다:
```
sudo apt-get install -f
```
2. Docker 서비스를 다시 시작해 보세요. 다음과 같이 실행합니다:
```
sudo systemctl restart docker.service
```
3. Docker 서비스의 상태를 확인해 보세요. 다음과 같이 실행하여 오류에 대한 자세한 정보를 얻을 수 있습니다:
```
systemctl status docker.service
```
위 단계를 시도한 후에도 문제가 지속된다면, 추가적인 정보가 필요합니다. `systemctl status docker.service`의 출력과 `journalctl -xeu docker.service`의 출력을 공유해 주시면 더 자세한 도움을 드릴 수 있습니다.
댓글