Docker 镜像获取
OpenClaw 官方提供 Docker 镜像,开箱即用: ``bash
docker pull openclawai/openclaw:latest
`
镜像基于 Node.js 运行时,包含 OpenClaw 的所有核心组件。
国内镜像加速
如果拉取速度慢,可以配置 Docker 镜像加速器:
`bash
编辑 Docker 配置
sudo nano /etc/docker/daemon.json
`
添加加速器地址:
`json
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com"
]
}
`
重启 Docker 生效:
`bash
sudo systemctl restart docker
`
docker run 快速启动
最简单的启动方式,一行命令:
`bash
docker run -d \
--name openclaw \
-p 18789:18789 \
-v ~/.openclaw:/root/.openclaw \
-e OPENAI_API_KEY=sk-your-key-here \
--restart unless-stopped \
openclawai/openclaw:latest
`
参数说明:
| 参数 | 说明 |
|------|------|
| -d | 后台运行 |
| --name openclaw | 容器名称 |
| -p 18789:18789 | 端口映射(Gateway 默认端口) |
| -v ~/.openclaw:/root/.openclaw | 数据卷挂载(持久化配置和数据) |
| -e OPENAI_API_KEY=... | 设置环境变量 |
| --restart unless-stopped | 自动重启策略 |
启动后访问仪表板:
`
http://你的服务器IP:18789/
`
docker-compose 完整配置
生产环境推荐使用 docker-compose,配置更清晰、管理更方便。
创建项目目录
`bash
mkdir -p /opt/openclaw
cd /opt/openclaw
`
编写 docker-compose.yml
`yaml
version: '3.8'
services:
openclaw:
image: openclawai/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "18789:18789"
volumes:
- ./data:/root/.openclaw
environment:
- TZ=Asia/Shanghai
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:18789/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
`
创建 .env 文件
`bash
nano /opt/openclaw/.env
`
`env
模型 API Key(至少配置一个)
OPENAI_API_KEY=sk-your-openai-key
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
国内模型(可选)
DASHSCOPE_API_KEY=sk-your-qwen-key
DEEPSEEK_API_KEY=sk-your-deepseek-key
`
启动服务
`bash
cd /opt/openclaw
docker-compose up -d
`
常用管理命令
`bash
查看运行状态
docker-compose ps
查看日志
docker-compose logs -f openclaw
重启服务
docker-compose restart
停止服务
docker-compose down
停止并删除数据(谨慎!)
docker-compose down -v
`
环境变量设置
模型 API Key
至少需要配置一个模型提供商的 API Key:
| 环境变量 | 提供商 | 说明 |
|----------|--------|------|
| OPENAI_API_KEY | OpenAI | GPT-4、GPT-3.5 |
| ANTHROPIC_API_KEY | Anthropic | Claude 系列 |
| DASHSCOPE_API_KEY | 通义千问 | 国内推荐 |
| DEEPSEEK_API_KEY | DeepSeek | 国内推荐,性价比高 |
| GLM_API_KEY | 智谱 AI | GLM 系列 |
| MOONSHOT_API_KEY | Moonshot | Kimi 系列 |
渠道 Token
如果需要连接聊天渠道,配置对应的 Token:
`env
Telegram Bot
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...
Discord Bot
DISCORD_BOT_TOKEN=your-discord-token
WhatsApp(通过二维码配对,不需要 Token)
`
其他配置
`env
时区
TZ=Asia/Shanghai
Gateway 端口(默认 18789)
OPENCLAW_PORT=18789
日志级别
LOG_LEVEL=info
`
数据持久化
Docker 容器是无状态的,重建容器后数据会丢失。必须通过 volumes 挂载来持久化数据。
需要持久化的目录
`
~/.openclaw/
├── openclaw.json # Gateway 配置
├── workspace/ # 智能体工作区(SOUL.md、MEMORY.md 等)
├── sessions/ # 会话记录
├── skills/ # 已安装的技能
└── agents/ # 多智能体配置
`
docker-compose 中的 volumes 配置
`yaml
volumes:
- ./data:/root/.openclaw # 所有 OpenClaw 数据
`
这样所有数据都保存在宿主机的 ./data 目录下,容器重建后数据不会丢失。
备份建议
`bash
定期备份数据目录
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz /opt/openclaw/data/
或者用 rsync 同步到远程
rsync -avz /opt/openclaw/data/ backup-server:/backups/openclaw/
`
VPS 部署完整流程
从零开始在一台全新的 VPS 上部署 OpenClaw。
第一步:系统初始化
`bash
更新系统
sudo apt update && sudo apt upgrade -y
安装基础工具
sudo apt install -y curl wget git nano ufw
`
第二步:安装 Docker
`bash
安装 Docker(官方脚本)
curl -fsSL https://get.docker.com | sh
将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
安装 docker-compose
sudo apt install -y docker-compose-plugin
验证安装
docker --version
docker compose version
`
第三步:配置防火墙
`bash
允许 SSH
sudo ufw allow 22
允许 HTTP/HTTPS
sudo ufw allow 80
sudo ufw allow 443
启用防火墙
sudo ufw enable
查看状态
sudo ufw status
`
注意:不要直接暴露 18789 端口到公网,通过 Nginx 反向代理访问。
第四步:部署 OpenClaw
`bash
创建项目目录
mkdir -p /opt/openclaw
cd /opt/openclaw
创建 docker-compose.yml(参考上面的完整配置)
nano docker-compose.yml
创建 .env 文件
nano .env
启动
docker compose up -d
验证运行
docker compose ps
curl http://localhost:18789/
`
第五步:配置 Nginx 反向代理
见下一节。
Nginx 反向代理配置
Nginx 作为反向代理,提供域名访问、SSL 加密和 WebSocket 支持。
安装 Nginx
`bash
sudo apt install -y nginx
`
配置文件
`bash
sudo nano /etc/nginx/sites-available/openclaw
`
`nginx
server {
listen 80;
server_name your-domain.com;
# HTTP 重定向到 HTTPS(配置 SSL 后启用)
# return 301 https://$server_name$request_uri;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
# WebSocket 支持(重要!)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 传递真实 IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 超时设置(WebSocket 需要较长超时)
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
`
启用配置
`bash
创建软链接
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
删除默认配置(可选)
sudo rm /etc/nginx/sites-enabled/default
测试配置
sudo nginx -t
重载 Nginx
sudo systemctl reload nginx
`
WebSocket 支持说明
OpenClaw 的 WebChat 和部分渠道使用 WebSocket 通信。Nginx 配置中的这两行是关键:
`nginx
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
`
如果缺少这两行,WebChat 将无法正常工作。
SSL 证书配置
使用 Let's Encrypt 免费 SSL 证书。
安装 Certbot
`bash
sudo apt install -y certbot python3-certbot-nginx
`
申请证书
`bash
sudo certbot --nginx -d your-domain.com
`
Certbot 会自动:
1. 验证域名所有权
2. 申请 SSL 证书
3. 修改 Nginx 配置添加 HTTPS
4. 设置自动续期
验证自动续期
`bash
测试续期
sudo certbot renew --dry-run
查看证书状态
sudo certbot certificates
`
手动配置 HTTPS
如果 Certbot 自动配置不生效,手动修改 Nginx 配置:
`nginx
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
# SSL 安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
`
国内服务器注意事项
镜像加速
国内服务器拉取 Docker Hub 镜像可能很慢,务必配置镜像加速器(参考本文开头的配置方法)。
域名备案
如果使用国内服务器(阿里云、腾讯云等)并绑定域名:
- 必须完成 ICP 备案,否则域名会被封禁
- 备案周期通常 7-20 个工作日
- 备案期间可以用 IP 直接访问(不绑定域名)
- 备案完成前不要配置 SSL 证书
端口限制
部分云服务商默认只开放 22、80、443 端口,其他端口需要在安全组中手动开放。
如果使用 Nginx 反向代理(推荐),只需要开放 80 和 443 即可。
网络访问
OpenClaw 需要访问模型 API(OpenAI、Anthropic 等),国内服务器可能无法直接访问:
- 推荐方案:使用国内模型提供商(通义千问、DeepSeek、智谱 GLM)
- 备选方案:配置代理访问国外 API
- 混合方案:国内模型为主,国外模型作为故障转移备选
时区设置
确保容器时区正确:
`yaml
environment:
- TZ=Asia/Shanghai
`
更新和维护
更新 OpenClaw
`bash
cd /opt/openclaw
拉取最新镜像
docker compose pull
重建容器(数据不会丢失,因为挂载了 volumes)
docker compose up -d
查看新版本
docker compose logs openclaw | head -20
`
查看日志
`bash
实时日志
docker compose logs -f openclaw
最近 100 行
docker compose logs --tail 100 openclaw
`
监控容器状态
`bash
查看资源使用
docker stats openclaw
查看容器详情
docker inspect openclaw
`
常见问题排查
容器启动失败:
`bash
查看启动日志
docker compose logs openclaw
常见原因:
1. 端口被占用 → 修改端口映射
2. 环境变量缺失 → 检查 .env 文件
3. 数据目录权限 → chmod -R 755 ./data
`
无法访问仪表板:
`bash
检查容器是否运行
docker compose ps
检查端口监听
ss -tlnp | grep 18789
检查防火墙
sudo ufw status
`
WebSocket 连接失败:
`bash
检查 Nginx 配置是否包含 WebSocket 支持
sudo nginx -t
sudo cat /etc/nginx/sites-enabled/openclaw | grep -i upgrade
`
完整部署检查清单
部署完成后,逐项检查:
- [ ] Docker 容器正常运行(docker compose ps)
- [ ] Gateway 可访问(curl http://localhost:18789/)
- [ ] Nginx 反向代理正常(通过域名访问)
- [ ] SSL 证书有效(浏览器显示锁图标)
- [ ] WebSocket 正常(WebChat 可以对话)
- [ ] 数据持久化正常(重启容器后数据还在)
- [ ] 自动重启正常(docker compose restart 后服务恢复)
- [ ] 日志可查看(docker compose logs)
- [ ] 备份策略已配置
小结
Docker 部署 OpenClaw 的核心步骤:
1. 拉取镜像,编写 docker-compose.yml
2. 配置环境变量(API Key、渠道 Token)
3. 挂载数据卷实现持久化
4. 配置 Nginx 反向代理(注意 WebSocket 支持)
5. 申请 SSL 证书
6. 国内服务器注意镜像加速和备案
数据安全靠 volumes 挂载,更新靠 docker compose pull && up -d`,简单可靠。
---
#Docker部署 #VPS部署 #服务器运维 #Nginx配置 #龙虾技能库