
Docker 一键部署:从零到运行只需 90 秒
OpenClaw 6.2 版本发布后,官方镜像已经瘦身到 380MB,启动时间从 6.x 早期版本的 12 秒压到了 4 秒内。本地跑一个完整可用的实例,再也不用折腾 Python 虚拟环境和依赖冲突。
先确认服务器或本地机器满足两个硬性条件:
- Docker Engine ≥ 24.0(
docker --version查看) - 可用内存 ≥ 4GB(OpenClaw 6.x 的 bge-m3 嵌入模型需要至少 3.2GB 常驻)
满足条件后,直接执行下面这条命令:
docker run -d \ --name openclaw \ --restart unless-stopped \ -p 7860:7860 \ -v /opt/openclaw/data:/app/data \ -v /opt/openclaw/logs:/app/logs \ -e OPENCLAW_TOKEN=$(openssl rand -hex 32) \ -e TZ=Asia/Shanghai \ openclaw/openclaw:6.2.1
几个参数解释下,避免踩坑:
--restart unless-stopped:服务器重启后自动拉起,这是 7×24 服务的底线-v /opt/openclaw/data:/app/data:知识库和向量索引都挂在这个目录,千万别省略,否则容器重建数据全丢OPENCLAW_TOKEN:API 调用的鉴权密钥,用openssl rand生成 64 位随机串,比手动写死强太多
执行 docker logs -f openclaw,看到 "Uvicorn running on http://0.0.0.0:7860" 就说明跑起来了。浏览器打开 http://服务器IP:7860,默认账号 admin,密码 openclaw@2026,首次登录会强制改密。
如果习惯 docker-compose,把命令翻译成下面这份文件更方便管理:
version: '3.8'
services:
openclaw:
image: openclaw/openclaw:6.2.1
container_name: openclaw
restart: unless-stopped
ports:
- "127.0.0.1:7860:7860"
volumes:
- ./data:/app/data
- ./logs:/app/logs
environment:
- OPENCLAW_TOKEN=${OPENCLAW_TOKEN}
- TZ=Asia/Shanghai
- OPENCLAW_EMBED_MODEL=bge-m3
- OPENCLAW_LLM_BACKEND=ollama
depends_on:
- ollama
ollama:
image: ollama/ollama:0.5.4
container_name: openclaw-ollama
restart: unless-stopped
volumes:
- ./ollama:/root/.ollama
# 只暴露给 openclaw 容器,不开公网端口
expose:
- "11434"
这份 compose 把 Ollama 也拉进来,构成了”OpenClaw + 本地大模型”的纯内网方案。LLM 推理走 openclaw-ollama:11434,数据完全不经过第三方,这是私有化部署最核心的价值。
宝塔面板反向代理:给 OpenClaw 一张”正式”身份证
裸跑 :7860 端口只是开发态。要给团队成员用,必须挂域名、配 HTTPS。宝塔面板是国内运维最熟悉的面板,下面这条路径最快。
第一步:装站点,加反代
宝塔软件商店装好 Nginx 1.24+ 后,进入”网站 → 添加站点”,填好域名(假设是 ai.yourcompany.com),PHP 选”纯静态”。然后在站点设置里找到”反向代理”,添加:
- 代理名称:openclaw
- 目标 URL:
http://127.0.0.1:7860 - 发送域名:
$host
提交后宝塔会自动生成一段 Nginx 配置,但你得手改一下,加几个关键 header:
location / {
proxy_pass http://127.0.0.1:7860;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时调长,大模型推理可能 30 秒+
proxy_read_timeout 300s;
proxy_send_timeout 300s;
# 隐藏后端真实信息
proxy_hide_header X-Powered-By;
proxy_hide_header Server;
}
很多人在这里栽过跟头——OpenClaw 的对话流走 WebSocket,没那两行 Upgrade 配置,连接 60 秒必断,用户体验稀烂。
第二步:申请 SSL,配 HSTS
站点设置 → SSL → Let's Encrypt,申请免费证书。签发后开启"强制 HTTPS"。额外建议在配置里加一条 HSTS:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
这一行加在 server 块里(不是 location),浏览器记住 365 天都用 HTTPS 访问,杜绝降级劫持。
真实案例:30 人团队的部署
上个月帮一家律所部署,他们 30 个律师 + 5 个行政共用一个 OpenClaw 实例跑合同审查。配置如下:
- 服务器:阿里云 4 核 8G(ESC s6 系列,¥180/月)
- Ollama 跑 qwen2.5:14b,CPU 推理
- OpenClaw 数据盘单独挂载云盘,每日快照
- 反向代理 + Cloudflare 中转,海外访问也能跑
这套方案单次问答延迟 8-15 秒,日常使用完全够用。如果想再快,GPU 实例(阿里云 gn7i,¥3500/月)能把延迟压到 2 秒内,但成本差了一个数量级,按需选择。
私有化部署的安全加固清单
OpenClaw 一旦对外服务,安全就是头等大事。下面这份清单是 2026 年 7 月官方安全公告(OC-SA-2026-013)里推荐的最低配置,缺一项都不行。
1. 网络层:最小化暴露面
把 7860 端口改成只监听 127.0.0.1(前面 compose 文件已经这样写了),所有外部访问必须经过 Nginx。防火墙规则:
# 阿里云/腾讯云安全组只开 80/443 ufw allow 80/tcp ufw allow 443/tcp ufw deny 7860/tcp ufw enable
SSH 端口也建议改成非 22,并禁用密码登录只留密钥:
sed -i 's/#Port 22/Port 22992/' /etc/ssh/sshd_config sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config systemctl restart sshd
2. 应用层:双因素 + IP 白名单
OpenClaw 6.2 之后原生支持 TOTP 二次验证,在"系统设置 → 安全"里绑定 Google Authenticator 或微软 Authenticator。强烈建议给 admin 账号立刻开起来。
如果是固定办公场景,在 Nginx 层面加 IP 白名单比什么验证码都管用:
# 只允许办公网段 allow 113.108.0.0/16; allow 14.215.0.0/16; deny all;
3. 数据层:备份与加密
/opt/openclaw/data 目录是命根子。用 cron 每日凌晨 3 点打包,上传到 OSS:
0 3 * * * tar czf /backup/openclaw-$(date +\%F).tar.gz /opt/openclaw/data && \ ossutil cp /backup/openclaw-$(date +\%F).tar.gz oss://your-bucket/openclaw/ && \ find /backup -name "openclaw-*.tar.gz" -mtime +7 -delete
这条命令做了三件事:打包、传到 OSS、清理 7 天前的本地备份。保留周期可以根据合规要求调整,金融行业建议 90 天以上。
如果数据敏感度更高,可以把数据卷改成 LUKS 加密盘:
cryptsetup luksFormat /dev/vdb cryptsetup luksOpen /dev/vdb openclaw_data mkfs.xfs /dev/mapper/openclaw_data mount /dev/mapper/openclaw_data /opt/openclaw/data
服务器物理失窃时,没有密钥谁也读不走数据。
4. 镜像更新:自动化滚动升级
OpenClaw 团队发版节奏现在是每两周一个小版本,半年一个大版本。手盯不现实,用 watchtower 自动跟踪:
docker run -d \ --name watchtower \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ -e WATCHTOWER_CLEANUP=true \ -e WATCHTOWER_POLL_INTERVAL=86400 \ containrrr/watchtower
默认 24 小时检查一次更新,升级前会自动备份旧容器。有大版本升级前(比如 6.x → 7.x),建议先停 watchtower,手动验证兼容性再开。
踩坑记录:那些官方文档没写的细节
最后分享几个一线部署常踩的坑,帮你省下几个小时的 debug 时间。
坑 1:向量索引重建卡死。如果 data/vector_index 目录从其他机器拷过来,可能因文件权限问题导致启动时无限重建。修复方法:
chown -R 1000:1000 /opt/openclaw/data docker restart openclaw
OpenClaw 容器内进程以 UID 1000 运行,宿主机目录权限不对就直接报错但不退出,日志里只看到卡在 "loading faiss index",非常误导。
坑 2:Ollama 模型下载超时。在国内裸连 GitHub Container Registry 和 Ollama 镜像源经常超时。建议在宿主机配代理或改用国内镜像:
# 拉模型时指定国内镜像 docker exec -it openclaw-ollama \ ollama pull qwen2.5:14b --registry ghcr.io.ollama-cn-mirror.org
坑 3:日志暴涨撑爆磁盘。OpenClaw 默认日志输出到 stdout,但很多人会同时挂载 logs 目录导致双写。检查方法:
# 查看日志大小 du -sh /opt/openclaw/logs/* # 配置 logrotate cat > /etc/logrotate.d/openclaw <30 人团队每天能产出 2-5GB 日志,不配 logrotate 一个月就磁盘爆满。
Docker 部署 OpenClaw 的门槛已经被压到极低,核心工作其实只有三件事:拉镜像、配反代、保数据。剩下的就是业务层面的知识库建设和 Prompt 调优。把这套架构跑稳之后,团队的生产力工具才算真正落地。
整理自 OpenClaw 官方文档 | 2026年07月06日
📊 常见问题解答
❓ OpenClaw 是什么?
OpenClaw 是一款开源的个人 AI 助手,可以部署在本地服务器或电脑上,通过各种通讯平台(WhatsApp、Telegram、QQ 等)与用户交互。
❓ OpenClaw 安全吗?
OpenClaw 支持多种安全配置,包括 allowFrom 白名单、沙盒模式、数据本地存储等,可以根据需求选择合适的安全等级。
❓ 如何开始使用 OpenClaw?
访问 OpenClaw 官方文档,按照快速入门指南操作,5分钟即可完成基础配置。
📈 相关数据
- ⭐ GitHub 星标:270,000+
- 📚 支持平台:20+
- 🌐 全球用户:数百万
🔗 参考资料: OpenClaw 官方文档 | GitHub