최근 도커를 WSL 환경에서 사용하면서, 도커 배포 시 메모리 확장이 필요한 상황을 겪게 되었다.
WSL에서 도커를 사용할 때, 메모리 설정이 제대로 적용되지 않아 예상치 못한 오류가 발생했는데, 이를 해결하기 위해 시행착오를 겪은 끝에 문제를 해결할 수 있었다. 그 과정과 조금은 도움될만한 해결 방법을 공유하고자 한다.
참고한 글들:
도커 배포 시, WSL이 제대로 실행되지 않거나 Docker 관련 메시지만 출력되는 경우가 있다. 이는 WSL의 기본 인스턴스가 Docker Desktop용 WSL로 설정되어 있기 때문이다. 이를 해결하기 위해, 다음 명령어로 WSL 기본값을 Ubuntu로 변경해야 한다.
wsl --list
wsl --setdefault Ubuntu
이 명령어를 통해 Ubuntu가 기본값으로 설정되면, WSL이 정상적으로 실행되며 Docker 배포에 필요한 메모리 설정을 제대로 적용할 수 있다. 🎉
도커 배포 시 메모리 설정을 .wslconfig
파일에 작성했음에도 불구하고 설정이 적용되지 않는 경우가 발생할 수 있다. 예를 들어, 아래와 같이 .wslconfig
파일을 작성했다면:
[wsl2]
memory=14GB
processors=4
하지만 설정이 적용되지 않고, 도커 배포 시 여전히 메모리 부족 오류가 발생했다. 원인은 .wslconfig
파일의 확장자가 .wslconfig.txt
로 되어 있었기 때문이다. Windows에서는 파일 확장자가 숨김 처리되어 있어 실수하기 쉽다. 이를 확인하기 위해 VSCode 등으로 열어보면, 파일 이름 끝에 .txt
가 붙어 있는 것을 알 수 있다. 📝
파일 확장자를 .wslconfig
로 수정한 뒤 다시 저장하면 설정이 적용되며, 도커 배포 시 메모리도 7.4GB에서 숨겨진 메모리인 14.56GB로 증가한 것을 확인할 수 있었다. 🔥
도커 배포 시 메모리 부족 오류 메시지가 출력될 때, 예를 들어 아래와 같은 오류가 발생한다.
{"error":"model requires more system memory (10.8 GiB) than is available (10.2 GiB) (status code: 500)"}
이 경우는 시스템의 실제 사용 가능 메모리보다 도커에서 요청한 모델이 요구하는 메모리가 더 클 때 발생한다. 이 문제를 해결하기 위해서는 도커 배포 시 사용하는 모델의 메모리 요구 사항을 확인하고, 모델 사양을 낮추어 설정하는 방법이 필요하다. 나는 사용하는 Ollama 모델을 8b
에서 last
, 그리고 7b
로 점차 낮추어 설정하여 오류를 해결했다. 💡
(..점점 출력값이 이상해지는건 안비밀..)
wsl --setdefault Ubuntu
명령어로 Ubuntu를 기본값으로 변경한다. ✅.wslconfig
파일의 확장자를 정확히 .wslconfig
로 설정해야 한다. ✅