AI

Docker 환경에서 Ollama + OpenClaw(Clawdbot) 설치하기

블체. 2026. 2. 23. 00:01

개요

  • 환경: Windows 10/11, Docker Desktop, WSL2(Ubuntu)
  • 목표: Ollama 로컬 LLM 모델을 AI 백엔드로 사용하는 OpenClaw를 Docker로 구성
  • 참고: Clawdbot → Moltbot → OpenClaw 순서로 이름이 변경됨 (2026년 기준 공식 명칭은 OpenClaw)

1. WSL2 설치

PowerShell을 관리자 권한으로 실행 후:

wsl --install

설치 완료 후 PC 재시작. 재시작 후 Ubuntu 터미널이 자동으로 열리면 사용자 이름과 비밀번호를 설정한다.


2. Docker Desktop 설치

  1. https://www.docker.com/products/docker-desktop 에서 다운로드
  2. 설치 완료 후 PC 재시작

WSL2 연동 설정

Docker Desktop 실행 후:

  1. ⚙️ Settings → Resources → WSL Integration
  2. Enable integration with my default WSL distro 체크
  3. Ubuntu 토글 켜기
  4. Apply & Restart

WSL2에서 Docker 권한 설정

Ubuntu 터미널에서 실행:

sudo usermod -aG docker $USER

PowerShell에서 WSL2 재시작:

wsl --shutdown

Ubuntu 터미널을 다시 열고 정상 동작 확인:

docker compose version

3. Ollama 설치 (Docker)

컨테이너 실행

docker run -d --name ollama -p 11434:11434 -v ollama:/root/.ollama ollama/ollama

모델 다운로드

docker exec -it ollama ollama pull llama3.2

동작 확인

브라우저에서 http://localhost:11434 접속 시 Ollama is running 이 출력되면 정상.


4. OpenClaw 설치 (Docker)

소스코드 클론

cd /mnt/c/
git clone https://github.com/openclaw/openclaw.git clawdbot
cd /mnt/c/clawdbot

주의: 이후 모든 명령어는 Git Bash가 아닌 Ubuntu 터미널(WSL2) 에서 실행해야 한다.
Git Bash는 화살표 키 등 인터랙티브 기능을 제대로 지원하지 않는다.

설치 스크립트 실행

./docker-setup.sh

설치 마법사 진행

단계 선택

보안 경고 y + Enter
Onboarding mode QuickStart → Enter
모델 선택 목록에 Ollama 없음 → 아무거나 선택 후 진행 (나중에 설정 파일 수정)
Skills 설치 Skip for now

마법사 완료 후 터미널에 토큰이 출력되지만, 실제 사용할 토큰은 설정 파일에서 확인한다.


5. OpenClaw 대시보드 접속

실제 토큰 확인

cat ~/.openclaw/openclaw.json

출력 내용 중 gateway.auth.token 값을 복사한다.

"gateway": {
  "auth": {
    "mode": "token",
    "token": "여기가 실제 토큰"
  }
}

브라우저 접속

http://localhost:18789/?token=여기에토큰값

6. 트러블슈팅

device token mismatch

disconnected (1008): unauthorized: device token mismatch

터미널 출력 토큰과 설정 파일 토큰이 다른 경우 발생한다.
반드시 ~/.openclaw/openclaw.json 의 gateway.auth.token 값을 사용해야 한다.


pairing required

disconnected (1008): pairing required

브라우저 디바이스 인증 단계에서 막히는 경우다. 설정 파일에 dangerouslyDisableDeviceAuth 옵션을 추가하면 우회할 수 있다.

nano ~/.openclaw/openclaw.json

gateway 섹션을 아래와 같이 수정:

"gateway": {
  "port": 18789,
  "mode": "local",
  "bind": "loopback",
  "auth": {
    "mode": "token",
    "token": "여기에토큰값"
  },
  "controlUi": {
    "dangerouslyDisableDeviceAuth": true
  },
  "tailscale": {
    "mode": "off",
    "resetOnExit": false
  }
}

저장 후 컨테이너 재시작:

docker compose -f /mnt/c/clawdbot/docker-compose.yml restart openclaw-gateway

7. Ollama 모델 연결

설정 파일에 Ollama provider를 추가한다:

nano ~/.openclaw/openclaw.json

최상위 레벨에 models 항목 추가, agents.defaults.model 수정:

{
  "models": {
    "providers": {
      "ollama": {
        "baseUrl": "http://host.docker.internal:11434/v1",
        "apiKey": "ollama"
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "ollama/llama3.2"
      }
    }
  }
}

핵심: Docker 컨테이너 내부에서 호스트 PC의 Ollama에 접근할 때는 localhost 대신 host.docker.internal 을 사용해야 한다.

재시작:

docker compose -f /mnt/c/clawdbot/docker-compose.yml restart openclaw-gateway

8. 최종 구성도

브라우저 (http://localhost:18789)
        ↓
OpenClaw Gateway (Docker 컨테이너)
        ↓
Ollama (Docker 컨테이너, 포트 11434)
        ↓
llama3.2 등 로컬 LLM 모델

자주 쓰는 명령어

# 컨테이너 상태 확인
docker ps

# OpenClaw 로그 확인
docker compose -f /mnt/c/clawdbot/docker-compose.yml logs -f openclaw-gateway

# OpenClaw 재시작
docker compose -f /mnt/c/clawdbot/docker-compose.yml restart openclaw-gateway

# OpenClaw 중지
docker compose -f /mnt/c/clawdbot/docker-compose.yml down

# OpenClaw 시작
docker compose -f /mnt/c/clawdbot/docker-compose.yml up -d

# Ollama 모델 목록 확인
docker exec -it ollama ollama list

# Ollama 모델 추가
docker exec -it ollama ollama pull 모델명
반응형