Docker快速部署OpenClaw:一条命令搞定

科技3周前更新 muybien
12 0 0

Docker快速部署OpenClaw:一条命令搞定

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

© 版权声明

相关文章

暂无评论

none
暂无评论...