이 가이드는 Windows 환경에서 Rancher Desktop을 사용하여 Docker 컨테이너로 Ollama를 설치하고, Llama3.2와 같은 대규모 언어 모델(LLM)을 실행하려 할 때 발생할 수 있는 일반적인 문제들과 그 해결 과정을 단계별로 안내합니다.
목표: Rancher Desktop (v1.18.2 기준)을 사용하는 Windows에서 Docker를 통해 Ollama 서버를 설정하고, llama3.2 모델을 성공적으로 실행합니다.
문제 상황 1: Docker 데몬 연결 오류
증상: docker pull 또는 다른 Docker 명령어 실행 시 다음과 같은 오류 메시지 발생.

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

* rancher-desktop이라는 이름의 컨텍스트는 목록에 없었습니다.
* desktop-linux 컨텍스트가 활성화(* 표시)되어 있었고, 이 컨텍스트의 "DESCRIPTION"이 "Docker Desktop"이었으며, "DOCKER ENDPOINT"는 오류 메시지에 나온 npipe:////./pipe/dockerDesktopLinuxEngine과 일치했습니다.
원인 추론: 활성화된 Docker 컨텍스트(desktop-linux)가 실제 사용하려는 Rancher Desktop이 아닌, 응답하지 않는 (또는 설치되지 않은) Docker Desktop의 엔드포인트를 가리키고 있었기 때문입니다.
해결 단계 :
- docker context ls 결과를 바탕으로, 활성화된 desktop-linux 컨텍스트가 오류의 원인임을 인지했습니다.
- desktop-linux 컨텍스트의 설명과 엔드포인트가 Docker Desktop과 관련된 것으로 판단하고, 현재 사용하려는 Rancher Desktop의 컨텍스트가 아니라고 추론했습니다.
- 목록에 있는 다른 컨텍스트인 default (엔드포인트: npipe:////./pipe/docker_engine)가 Rancher Desktop에 의해 사용될 수 있는 가능성이 있다고 판단했습니다. (Rancher Desktop이 실행 중일 때 이 파이프를 사용할 수 있음)
- 다음 명령어를 사용하여 활성 Docker 컨텍스트를 default로 변경했습니다:

- 컨텍스트 변경 후, Docker 명령어(docker pull alpine/ollama 등)가 Rancher Desktop의 Docker 데몬과 정상적으로 통신하며 초기 연결 문제가 해결되었습니다.
문제 상황 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옵션 뒤에 볼륨 설정(예:호스트경로:컨테이너경로또는볼륨이름:컨테이너경로)이 누락되었습니다.
해결 단계:
- 올바른 Ollama 이미지 사용:
- 먼저 Ollama 서버 이미지를 받아야 합니다. (사용자는
alpine/ollama를 사용했습니다.)docker pull alpine/ollama docker images명령어로 이미지가 정상적으로 받아졌는지 확인합니다.alpine/ollama가 목록에 있어야 합니다.
- 먼저 Ollama 서버 이미지를 받아야 합니다. (사용자는
- 올바른
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 기준):
- Rancher Desktop UI에서 메모리 설정 시도:
- 사용자는 버전 1.13.2의 Rancher Desktop UI에서 직접적인 메모리 설정 옵션을 찾기 어려워했습니다. 일부 버전이나 설정에서는 이 옵션이 WSL2 전역 설정을 따르도록 되어 있을 수 있습니다.
.wslconfig파일을 통한 WSL2 전역 메모리 설정 (최종 해결책):- 파일 위치:
C:\Users\<사용자이름>\.wslconfig(예:C:\Users\CurrentUser\.wslconfig) - 파일 생성/편집:
- 이 파일은 기본적으로 존재하지 않을 수 있으므로, 없다면 텍스트 편집기(메모장 등)로 새로 만듭니다.
- 파일 내용을 다음과 같이 작성합니다 (예: 4GB 할당. 모델 필요량 3.4GiB보다 커야 함).

- 저장 시 주의사항: 메모장에서 저장할 때 "파일 이름"을
.wslconfig(앞에 점, 확장자 없음)로, "파일 형식"은 "모든 파일 (.)" 로 지정해야 합니다.
- WSL 재시작 (필수!):
- PowerShell을 관리자 권한으로 실행합니다.
- 다음 명령어를 입력하여 WSL을 완전히 종료합니다:
wsl --shutdown
- Rancher Desktop 재시작: WSL 종료 후 Rancher Desktop을 완전히 껐다가 다시 시작합니다.
- Ollama 컨테이너 재시작: Rancher Desktop이 새 설정으로 시작된 후,
ollama컨테이너도 재시작합니다.docker restart ollama
- 파일 위치:
문제 상황 4: 모델 다운로드 및 실행 확인
- 모델 다운로드:
- 실행 중인
ollama컨테이너 내부에서 원하는 모델을 다운로드합니다.docker exec -ti ollama ollama pull llama3.2 - 로그를 통해 다운로드 성공 여부를 확인합니다 ("success" 메시지).
- 실행 중인
- API를 통한 테스트:
- 메모리 문제가 해결되었다면, 이전에 실패했던 API 요청을 다시 시도합니다.
POST http://localhost:11434/api/generate { "model": "llama3.2", "prompt": "hello" } - 정상적으로 응답이 오면 성공입니다.
- 메모리 문제가 해결되었다면, 이전에 실패했던 API 요청을 다시 시도합니다.

결론 및 추가 팁
- 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 |
