🚀 OpenClaw Docker 部署完全指南:踩坑记录与解决方案
一句话总结:花了 8 小时踩了 6 个坑,整理出这份保姆级 Docker 部署指南,助你 30 分钟搞定 OpenClaw + MiniMax 接入。
📋 目录
🎯 效果预览
部署成功后访问 http://localhost:18790,即可看到 OpenClaw Dashboard:
![Dashboard 界面]
可以看到已连接的 Agent 和完整的控制面板。
✅ 前置检查清单
开始之前,确保:
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| Docker 版本 | docker --version | v20.10+ |
| 磁盘空间 | - | 至少 8GB 可用 |
| 网络连接 | - | 可访问 ghcr.io |
| 端口占用 | netstat -ano | findstr :18790 | 无占用 |
📦 详细部署步骤
步骤 1:创建工作目录
mkdir -Force "$env:USERPROFILE\OpenClawWorkspace\workspace"
mkdir -Force "$env:USERPROFILE\OpenClawWorkspace\openclaw-config"
步骤 2:创建配置文件
在 openclaw-config 目录创建 openclaw.json:
{
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"gateway": {
"bind": "lan",
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"http://127.0.0.1:18789",
"http://localhost:18790",
"http://127.0.0.1:18790"
]
},
"auth": {
"mode": "token",
"token": "docker-token-18790"
}
},
"models": {
"mode": "merge",
"providers": {
"minimax": {
"baseUrl": "https://api.minimax.chat/v1",
"apiKey": "YOUR_MINIMAX_API_KEY_HERE",
"api": "openai-completions",
"models": [
{
"id": "MiniMax-Text-01",
"name": "MiniMax Text 01",
"contextWindow": 16384,
"maxTokens": 8192
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "minimax/MiniMax-Text-01"
}
}
}
}
⚠️ 重要:models 字段必须是数组 [] 格式,不是对象 {}!
步骤 3:拉取镜像并启动
# 拉取镜像
docker pull ghcr.io/openclaw/openclaw:latest
# 创建网络
docker network create openclaw-net 2>$null
# 启动容器
docker run -d `
--name openclaw-docker `
--network openclaw-net `
-p "18790:18789" `
-v "$env:USERPROFILE\OpenClawWorkspace\workspace:/workspace:rw" `
-v "$env:USERPROFILE\OpenClawWorkspace\openclaw-config:/home/node/.openclaw:rw" `
ghcr.io/openclaw/openclaw:latest
步骤 4:访问 Dashboard
浏览器打开 http://localhost:18790,开始使用!
🔧 问题诊断与解决
❌ 问题 1:Docker 代理导致无法拉取镜像
症状:
Error response from daemon: Get "https://ghcr.io/v2/": ... proxyconnect tcp: dial tcp: lookup http.docker.internal: no such host
解决: ![Docker 代理配置界面]
Settings → Resources → Proxies → 关闭 Manual proxy configuration
❌ 问题 2:端口被占用
症状:容器启动失败或无法访问
解决:
# 查找占用进程
netstat -ano | findstr ":18789"
# 改用其他端口,如 18790
-p "18790:18789"
❌ 问题 3:无法配对设备(PAIRING_REQUIRED)
症状: ![设备配对提示]
解决:
# 查看配对请求
docker logs openclaw-docker | findstr "pairing"
# 批准配对(替换 <requestId> 为实际 ID)
docker exec -it openclaw-docker npx openclaw devices approve <requestId>
❌ 问题 4:跨域错误(CORS)
症状: ![跨域错误]
解决:在
openclaw.json 中添加 allowedOrigins:
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"http://127.0.0.1:18789",
"http://localhost:18790",
"http://127.0.0.1:18790"
]
}
重启容器生效:
docker restart openclaw-docker
❌ 问题 5:MiniMax 模型配置格式错误
症状:容器启动失败,日志显示:
models.providers.minimax.models: Invalid input: expected array, received undefined
解决:确保 models 是数组格式:
"models": [
{
"id": "MiniMax-Text-01",
"name": "MiniMax Text 01",
"contextWindow": 16384,
"maxTokens": 8192
}
]
不是:
"models": { // ❌ 错误!
"id": "..."
}
❌ 问题 6:配置文件修改后不生效
解决:
# 重启容器
docker restart openclaw-docker
# 或查看实时日志
docker logs -f openclaw-docker
⚡ 一键部署脚本
保存为 deploy.ps1,右键"使用 PowerShell 运行":
param(
[string]$Port = "18790",
[string]$ApiKey = ""
)
Write-Host "🚀 OpenClaw Docker 一键部署" -ForegroundColor Cyan
# 创建目录
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\OpenClawWorkspace\openclaw-config" | Out-Null
# 生成配置
$config = @"
{
"gateway": {
"bind": "lan",
"controlUi": { "allowedOrigins": ["http://localhost:$Port"] },
"auth": { "mode": "token", "token": "docker-token-$Port" }
},
"models": {
"providers": {
"minimax": {
"baseUrl": "https://api.minimax.chat/v1",
"apiKey": "$ApiKey",
"api": "openai-completions",
"models": [{"id":"MiniMax-Text-01","name":"MiniMax"}]
}
}
}
}
"@
$config | Out-File "$env:USERPROFILE\OpenClawWorkspace\openclaw-config\openclaw.json"
# 启动容器
docker run -d --name openclaw-docker -p "${Port}:18789" `
-v "$env:USERPROFILE\OpenClawWorkspace\openclaw-config:/home/node/.openclaw:rw" `
ghcr.io/openclaw/openclaw:latest
Write-Host "✅ 部署成功!访问 http://localhost:$Port" -ForegroundColor Green
📝 常用命令参考
# 查看日志
docker logs openclaw-docker
docker logs -f openclaw-docker # 实时跟踪
# 重启容器
docker restart openclaw-docker
# 进入容器终端
docker exec -it openclaw-docker bash
# 停止并删除容器
docker stop openclaw-docker
docker rm openclaw-docker
# 查看配对请求
docker exec openclaw-docker npx openclaw devices list
🏗️ 架构图
graph TB
A[Windows宿主机] --> B[Docker Desktop]
B --> C[openclaw-docker容器]
C --> D[Gateway:18789]
C --> E[配置目录<br/>openclaw.json]
C --> F[工作空间<br/>workspace]
D --> G[MiniMax API]
D --> H[Dashboard UI<br/>localhost:18790]
style A fill:#f9f,stroke:#333
style B fill:#bbf,stroke:#333
style C fill:#bfb,stroke:#333
style G fill:#ff9,stroke:#333
📌 总结
| 项目 | 内容 |
|---|---|
| 部署难度 | ⭐⭐⭐ 中等 |
| 主要坑点 | 代理、端口、配对、跨域、配置格式 |
| 推荐配置 | bind: lan + allowedOrigins + 数组格式 models |
| 后续扩展 | 可接入 OpenAI、Claude、本地模型等 |
希望这份指南能帮到你!有问题欢迎在评论区交流 👇
参考链接:
- OpenClaw 官方仓库:github.com/openclaw
- MiniMax 文档:www.minimax.chat
#OpenClaw #Docker #AIAgent #MiniMax #部署教程 #开源项目