개요
- 환경: 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 설치
- https://www.docker.com/products/docker-desktop 에서 다운로드
- 설치 완료 후 PC 재시작
WSL2 연동 설정
Docker Desktop 실행 후:
- ⚙️ Settings → Resources → WSL Integration
- Enable integration with my default WSL distro 체크
- Ubuntu 토글 켜기
- 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 모델명
'AI' 카테고리의 다른 글
| Docker 환경에서 OpenClaw와 Ollama 연결 (0) | 2026.02.24 |
|---|---|
| sQuiry: AI 서버와 통신하는 프론트엔드 개발 (0) | 2026.02.10 |
| sQuiry: 오픈소스 LLM과 RAG 기반 자연어-SQL 변환 서비스 (0) | 2026.02.09 |
| SpeakSH: Claude AI로 서버 관리 (시나리오) (0) | 2026.02.07 |
| SpeakSH: Claude Desktop 연동 (0) | 2026.02.06 |