diff --git a/wsl-docker/README.md b/wsl-docker/README.md new file mode 100644 index 0000000..b4153d3 --- /dev/null +++ b/wsl-docker/README.md @@ -0,0 +1,100 @@ +# WSL2 설치 + +Ref: https://learn.microsoft.com/ko-kr/windows/wsl/install + +## 1. 새로운 Windows에 WSL을 설치하는 경우 + +Powershell (관리자로 실행) +```Powershell +wsl --install +``` + +## 2. WSL 리눅스 배포판 설치 + +Powershell (관리자로 실행) +```Powershell +wsl --install -d Debian +``` +- 다른 배포판을 설치할 수도 있지만 Debian이 제일 근본이다. + + +## 3. Windows Terminal 설치 +https://apps.microsoft.com/detail/9n0dx20hk701?hl=en-US&gl=US + +# Docker 설치 + +## 4. WSL에 docker 설치 +Debian Bash +```sh +echo -e "\n[boot]\nsystemd=true\n" | sudo tee -a /etc/wsl.conf +``` + +Powershell (관리자로 실행) +```sh +wsl --shutdown # 종료 +wsl # 재시작 +``` + +Debian Bash +```sh +curl -fsSL https://get.docker.com | sudo sh +echo 'alias docker="sudo docker"' >> ~/.bashrc +source ~/.bashrc +docker run hello-world +``` +성공 메시지: +``` +Hello from Docker! +This message shows that your installation appears to be working correctly. +``` + +## 5. 암호를 입력하지 않고 docker 실행하는 법 +Debian Bash + +```sh +sudo visudo +``` +맨 아래줄에 아래와 같이 추가한다. 띄어쓰기 개수는 중요하지 않고 ,는 중요하다. +``` +<자기 ID> ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /usr/bin/docker +``` +입력후에 Ctrl + S 로 저장, Ctrl + X 로 종료하고 나오면 되고, 뭔가 잘못 입력하면 나갈수 없다. + + +## 6. WSL background 실행 +WSL는 기본적으로 실행중인 터미널이 없으면 WSL 자체가 종료되도록 되어 있어서 서버를 굴릴수가 없다. + +- https://www.autohotkey.com/ +- AHK v1.1 (Deprecated) 설치 +- Win+R > `shell:startup` +메모장으로 아래의 `wsl.ahk` 파일을 만들고 `시작프로그램` 폴더에 저장 +``` +Run, wsl.exe, , Hide +``` +이제 더블클릭해서 실행해보아도 아무것도 보이지 않지만 눈에 보이지 않는 터미널 하나가 실행되어, wsl이 꺼지지 않게 된다. 컴퓨터 재시작시에도 항상 하나가 켜져 있을 것이다. (예외: 본인이 `wsl --shutdown`으로 강제 종료하면 눈에 안보이는 이것도 꺼지므로 그때는 저걸 다시 켜주어야 함) + + +# Docker에 NVIDIA 설치 + +WSL에서 nvidia-driver까지는 자동으로 깔아주므로 별다른 설정 없이 `nvidia-smi`를 사용할 수 있다. + +## 7. nvidia-container-toolkit 설치 +https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-apt + +위의 부분의 명령어를 따라가면 되는데 아래와 같이 WSL Debian 기준으로는 아래와 같이 실행하면 된다. + +```sh +curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ + && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ + sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ + sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list + +sudo apt-get update +sudo apt-get install -y nvidia-container-toolkit +sudo nvidia-ctk runtime configure --runtime=docker +sudo systemctl restart docker + +docker run --gpus all debian nvidia-smi # test +``` + +`nvidia-smi`가 잘 실행되면 성공이다. \ No newline at end of file