Learning/TIL / / 2025. 5. 20. 11:57

Ollama on Rancher Desktop (Windows): Docker 연결 및 메모리 부족 오류 트러블슈팅

이 가이드는 Windows 환경에서 Rancher Desktop을 사용하여 Docker 컨테이너로 Ollama를 설치하고, Llama3.2와 같은 대규모 언어 모델(LLM)을 실행하려 할 때 발생할 수 있는 일반적인 문제들과 그 해결 과정을 단계별로 안내합니다.


목표: Rancher Desktop (v1.18.2 기준)을 사용하는 Windows에서 Docker를 통해 Ollama 서버를 설정하고, llama3.2 모델을 성공적으로 실행합니다.


문제 상황 1: Docker 데몬 연결 오류

증상: docker pull 또는 다른 Docker 명령어 실행 시 다음과 같은 오류 메시지 발생.

초기 상태 분석:

  1. Rancher Desktop 실행 상태 확인: 먼저 Rancher Desktop UI를 열어 모든 서비스가 정상적으로 실행 중인지 (녹색 상태) 확인하는 것이 기본입니다.
  2. Docker 컨텍스트 확인: 터미널에서 docker context ls 명령어를 실행했을 때, 다음과 같은 결과가 나타났습니다:

 

* rancher-desktop이라는 이름의 컨텍스트는 목록에 없었습니다.

* desktop-linux 컨텍스트가 활성화(* 표시)되어 있었고, 이 컨텍스트의 "DESCRIPTION"이 "Docker Desktop"이었으며, "DOCKER ENDPOINT"는 오류 메시지에 나온 npipe:////./pipe/dockerDesktopLinuxEngine과 일치했습니다.

 

원인 추론: 활성화된 Docker 컨텍스트(desktop-linux)가 실제 사용하려는 Rancher Desktop이 아닌, 응답하지 않는 (또는 설치되지 않은) Docker Desktop의 엔드포인트를 가리키고 있었기 때문입니다.

해결 단계 :

  1. docker context ls 결과를 바탕으로, 활성화된 desktop-linux 컨텍스트가 오류의 원인임을 인지했습니다.
  2. desktop-linux 컨텍스트의 설명과 엔드포인트가 Docker Desktop과 관련된 것으로 판단하고, 현재 사용하려는 Rancher Desktop의 컨텍스트가 아니라고 추론했습니다.
  3. 목록에 있는 다른 컨텍스트인 default (엔드포인트: npipe:////./pipe/docker_engine)가 Rancher Desktop에 의해 사용될 수 있는 가능성이 있다고 판단했습니다. (Rancher Desktop이 실행 중일 때 이 파이프를 사용할 수 있음)
  4. 다음 명령어를 사용하여 활성 Docker 컨텍스트를 default로 변경했습니다: 
  5. 컨텍스트 변경 후, Docker 명령어(docker pull alpine/ollama 등)가 Rancher Desktop의 Docker 데몬과 정상적으로 통신하며 초기 연결 문제가 해결되었습니다.

 

  1.  

문제 상황 2: Ollama Docker 컨테이너 실행 오류

증상: docker run 명령어로 Ollama 컨테이너 실행 시 이미지 관련 오류 발생.

$ docker run -d -p 11434:11434 -v --name llama3.2 alpline/llama3.2
Unable to find image 'llama3.2:latest' locally
docker: Error response from daemon: pull access denied for llama3.2, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

원인 분석:

  • 잘못된 이미지 이름: alpline/llama3.2는 Ollama 서버 이미지 이름이 아닙니다. llama3.2는 Ollama 서버가 실행한 후에 Ollama를 통해 다루는 모델 이름입니다.
  • 볼륨 플래그 -v의 불완전한 사용: -v 옵션 뒤에 볼륨 설정(예: 호스트경로:컨테이너경로 또는 볼륨이름:컨테이너경로)이 누락되었습니다.

해결 단계:

  1. 올바른 Ollama 이미지 사용:
    • 먼저 Ollama 서버 이미지를 받아야 합니다. (사용자는 alpine/ollama를 사용했습니다.)
      docker pull alpine/ollama
    • docker images 명령어로 이미지가 정상적으로 받아졌는지 확인합니다. alpine/ollama가 목록에 있어야 합니다.
  2. 올바른 docker run 명령어 사용:
    • 컨테이너 이름은 명확하게 ollama로 지정하고, 받아둔 alpine/ollama 이미지를 사용합니다.
    • 볼륨 설정을 정확히 합니다. 모델 데이터를 영구적으로 저장하기 위해 호스트 경로를 컨테이너 내부에 마운트합니다. (예: 사용자의 홈 디렉토리 아래 .ollama 폴더를 컨테이너의 /root/.ollama에 연결)
    • # 기존에 잘못 실행된 컨테이너가 있다면 삭제 (이름이 llama3.2였다면 해당 이름으로)
      • docker rm -f ollama # (이전 로그에서는 'ollama'라는 컨테이너가 없어 오류 발생했었음)
    • # 올바른 명령어로 컨테이너 실행
      • docker run -d -p 11434:11434 -v ~/.ollama:/root/.ollama --name ollama alpine/ollama
    • -d: 백그라운드 실행
    • -p 11434:11434: 포트 포워딩 (호스트:컨테이너)
    • -v ~/.ollama:/root/.ollama: 호스트의 ~/.ollama 디렉토리를 컨테이너의 /root/.ollama (Ollama 모델 저장 경로)에 마운트합니다.
    • --name ollama: 컨테이너 이름을 ollama로 지정합니다.
    • alpine/ollama: 사용할 Docker 이미지입니다.

문제 상황 3: Ollama 모델 실행 시 메모리 부족 오류

증상: Ollama API (http://localhost:11434/api/generate)를 통해 모델(llama3.2) 사용 시도 시 메모리 부족 오류 발생.

{
  "error": "model requires more system memory (3.4 GiB) than is available (3.3 GiB)"
}

원인 분석:

  • Rancher Desktop이 사용하는 WSL2 (Windows Subsystem for Linux 2) 가상 환경에 할당된 메모리가 모델 실행에 필요한 양보다 적습니다. Ollama 컨테이너는 이 WSL2 환경 내에서 실행되므로, WSL2의 메모리 제한을 받습니다.

해결 단계 (Windows + Rancher Desktop 버전 1.13.2 기준):

  1. Rancher Desktop UI에서 메모리 설정 시도:
    • 사용자는 버전 1.13.2의 Rancher Desktop UI에서 직접적인 메모리 설정 옵션을 찾기 어려워했습니다. 일부 버전이나 설정에서는 이 옵션이 WSL2 전역 설정을 따르도록 되어 있을 수 있습니다.
  2. .wslconfig 파일을 통한 WSL2 전역 메모리 설정 (최종 해결책):
    • 파일 위치: C:\Users\<사용자이름>\.wslconfig (예: C:\Users\CurrentUser\.wslconfig)
    • 파일 생성/편집:
      • 이 파일은 기본적으로 존재하지 않을 수 있으므로, 없다면 텍스트 편집기(메모장 등)로 새로 만듭니다.
      • 파일 내용을 다음과 같이 작성합니다 (예: 4GB 할당. 모델 필요량 3.4GiB보다 커야 함).

      • 저장 시 주의사항: 메모장에서 저장할 때 "파일 이름"을 .wslconfig (앞에 점, 확장자 없음)로, "파일 형식"은 "모든 파일 (.)" 로 지정해야 합니다.
    • WSL 재시작 (필수!):
      1. PowerShell을 관리자 권한으로 실행합니다.
      2. 다음 명령어를 입력하여 WSL을 완전히 종료합니다: wsl --shutdown
    • Rancher Desktop 재시작: WSL 종료 후 Rancher Desktop을 완전히 껐다가 다시 시작합니다.
    • Ollama 컨테이너 재시작: Rancher Desktop이 새 설정으로 시작된 후, ollama 컨테이너도 재시작합니다.
      docker restart ollama

문제 상황 4: 모델 다운로드 및 실행 확인

  1. 모델 다운로드:
    • 실행 중인 ollama 컨테이너 내부에서 원하는 모델을 다운로드합니다.
      docker exec -ti ollama ollama pull llama3.2
    • 로그를 통해 다운로드 성공 여부를 확인합니다 ("success" 메시지).
  2. API를 통한 테스트:
    • 메모리 문제가 해결되었다면, 이전에 실패했던 API 요청을 다시 시도합니다.
      POST http://localhost:11434/api/generate
      {
          "model": "llama3.2",
          "prompt": "hello"
      }
    • 정상적으로 응답이 오면 성공입니다.


결론 및 추가 팁

  • WSL2와 .wslconfig: Windows에서 WSL2를 사용하는 Docker 환경(Rancher Desktop, Docker Desktop 등)에서는 .wslconfig 파일이 리소스(메모리, CPU) 관리의 핵심적인 역할을 할 수 있다는 점을 기억해두세요.
  • 단계별 확인: 문제가 발생하면 관련된 각 단계를 (Docker 데몬 상태, 컨텍스트, 컨테이너 실행 명령어, 리소스 할당 등) 체계적으로 확인하는 것이 중요합니다.

'Learning > TIL' 카테고리의 다른 글

[250326] 안티패턴  (1) 2025.03.26
[250326] 코딩테스트 문제 해결을 위한 단계별 접근법 (Java 8 기반)  (1) 2025.03.26
[250325] Aiven & 프로젝트  (1) 2025.03.25
[250325] 자격증  (0) 2025.03.25
도커(Docker)?  (0) 2025.03.13
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유