나는 윈도우에서 도커를 개발하고 있었다. 그런데 컨테이너는 우분투로 작동하는 컨테이너를 만들고 싶었다. 그리고 텐서플로우 모델을 학습하는 기능까지 넣고 싶어서 컨테이너에서도 GPU를 인식할 수 있도록 설정해주고 싶었다.
마침 선구자님이 있으셔서 그 과정을 따라하며 나의 상황에 맞게 정리하고자 한다.
결론 : 이 글은 WSL 상에서 컨테이너를 실행하면 윈도우에 있는 GPU를 인식할 수 있도록한다.
Powershell을 관리자 모드로 실행한다.
Windows Subsystem for Linux 기능을 활성화 한다.
(아래의 명령어를 작성한다.)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
3.WSL2 사용을 위해 Virtual Machine 활성화
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
리눅스 업데이트 커널 패키지 설치
(아래의 출처 사이트에서 1.4 부분을 참고하여 설치)
WSL 기본버전을 WSL2로 지정하면, 시스템 성능이 향상되고 호환성이 좋아진다.
wsl --set-default-version 2
6.Microssoft store에서 Ubuntu(WSL) 설치 완료
(18.04.6 LTS 버전이 있으므로 그것을 설치, 유저이름과 비번 설정)
사용자이름과 비밀번호를 입력
(이 과정이 완료되면 Ubuntu(WSL)과 WSL2 설치가 완료된다.)
1.visudo 구동
sudo visudo
(1) 맨 아래에 작성
%sudo ALL=NOPASSWD: /usr/sbin/service
(2) Ctrl + o 입력 후, Enter key눌러 저장
(3) Ctrl + x 를 눌러 밖으로 나가기
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
3.Docker의 GPG Key 추가
(인용구 : GPG는 툴과 소스를 배포할 때 프로그램 변조를 검사할 수 있는 소프트웨어라는 의미)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK 메시지 확인
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5.도커 엔진 설치
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo service docker start
sudo docker run hello-world
6.NVIDIA-Docker 설치
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
# nvidia-docker의 gpg 키 추가
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
OK 메시지 확인
# 패키지 저장소 추가
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# 설치 확인
sudo service docker restart
sudo docker run --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi
작동 잘되는 것을 확인했다.
sudo docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
잘 실행되는 것을 확인했으면, 실제로 윈도우에서 내가 만들었던 컨테이너를 배포해보자
출처 : inthecode.log(https://velog.io/@inthecode/Windows-10WSL%EC%97%90%EC%84%9C-Docker%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-Tensorflow-GPU%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0)
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.