Clawdbot/OpenClaw Docker 部署与运维实战教程(2026版)

Clawdbot/OpenClaw Docker 部署与运维实战教程(2026版)

本文更新:2026.3.7最新更新

适用版本:OpenClaw 2026.2.21+(推荐 2026.3.1)

部署环境:Dockge / Portainer / Docker Compose


OpenClaw(原名 Clawdbot → Moltbot)是一款开源的、自托管的个人 AI 助手,它的设计理念可以用官方的 slogan 来概括:

“Your own openclaw skills 教程 personal AI assistant. Any OS. Any Platform. The lobster way. 🦞”

与 ChatGPT、Claude 等云端 AI 服务不同,OpenClaw 运行在你自己的设备上——无论是 Mac mini、树莓派、NAS 还是云服务器。这意味着你的所有对话、文件和自动化工作流都完全由你掌控,不会上传到第三方服务器。

💡 名称变更历史

  • 2025年11月:Clawdbot(原始名称)
  • 2026年1月:Moltbot(因 Anthropic 商标异议更名)
  • 2026年1月29日:OpenClaw(最终定名,CLI 命令改为 )

根据 DigitalOcean 的深度评测,OpenClaw 正在成为 2026 年个人生产力工具领域的革命性产品。截至 2026 年 3 月,项目已获得 超过 250,000 颗 GitHub 星——已超越 React,成为 GitHub 上仅次于 TensorFlow 的最受瞩目开源项目。React 用了十多年才达到的数字,OpenClaw 大约 60 天就做到了。它能够:

  • 🔗 连接多种聊天平台(Telegram、WhatsApp、Discord、Slack、iMessage、Microsoft Teams、Google Chat、Signal 等)
  • 🧠 调用顶级 LLM(Claude、GPT、Gemini)或本地模型(Ollama)
  • 🖥️ 控制你的浏览器和文件系统
  • ⚡ 通过 Skills 系统无限扩展能力
  • 🔒 数据本地化,隐私完全自主

虽然 OpenClaw 支持多种安装方式(npm 全局安装、源码编译、官方 Docker 镜像 等),但 Docker 部署具有以下显著优势:

本教程的核心价值在于:我们将 OpenClaw 与 FileBrowser 集成部署,让你可以通过 Web 界面直接上传和编辑 SKILL.md 文件,而无需每次都通过终端操作。这对于非技术背景的用户来说是一个巨大的便利。


在开始部署之前,理解 OpenClaw 的核心架构对后续的配置和维护至关重要。

Gateway 是 OpenClaw 的核心控制中枢。 它是一个持续运行的后台服务,负责:

  • 监听来自各个聊天渠道的消息
  • 调度 LLM 处理用户请求
  • 管理 Skills 和 Tools 的调用
  • 提供 Web 控制界面(Control UI)
  • 🆕 提供健康检查 HTTP 端点(、、、)

Gateway 默认监听端口 18789,通过 WebSocket 协议与客户端通信。

Skills 是 OpenClaw 的”能力扩展包”。 根据 Skills 官方文档,每个 Skill 是一个包含 文件的目录,定义了 OpenClaw 在特定场景下应该如何行动。

Skills 与普通的 Slash Commands(斜杠命令)有本质区别:

⚠️ 🆕 ClawdHub 安全警告:研究人员发现 ClawdHub 上约 20%(~800个)的已发布 Skills 包含恶意代码,包括凭据窃取器和后门。安装社区 Skills 前请务必审查源码,或仅使用来自可信作者的 Skills。详见 第 8 节安全配置。

OpenClaw 使用一组 Markdown 文件来定义 AI 的”人格”和”记忆”。根据 官方配置文档:

这套配置系统的设计哲学是”关注点分离”——将不同类型的配置分散到不同文件中,便于维护和版本管理。

💡 SOUL.md vs IDENTITY.md

  • 定义你的 AI 是谁——它的价值观、行为准则
  • 定义世界如何体验它——名字、emoji、语气风格

💡 适用设备示例:Mac mini、树莓派 4B+、群晖 NAS、任意 VPS(如 Hetzner、DigitalOcean、Vultr)

⚠️ 🆕 内存注意:官方文档指出,使用 Docker 构建镜像()时, 阶段至少需要 2 GB RAM,否则可能触发 OOM-killer(exit 137)。如果你使用预构建镜像(),则此限制不适用。

  • ✅ Docker Engine 24.0+ 或 Docker Desktop
  • ✅ Docker Compose v2(已集成在新版 Docker 中)
  • ✅ SSH 客户端(用于远程服务器管理)
  • 🆕 ✅ Node.js 22.12.0+(如使用非 Docker 方式安装;Docker 官方镜像已内置)

🔴 🆕 关键安全要求:Node.js 22.12.0 最低版本强制

v2026.2.21 起,OpenClaw 强制要求 Node.js 22.12.0 或更高版本。旧版 Node.js 存在两个已被利用的严重漏洞:

在旧版 Node.js 上运行 OpenClaw 是明确不受支持且不安全的。如果你使用官方 Docker 镜像 (基于 ),则无需担心此问题。

  • LLM API Key:Anthropic(推荐)、OpenAI、OpenRouter、Venice 或其他支持的提供商

⚠️ 重要提示:根据 OpenClaw 官方安全文档 的建议,推荐使用 Anthropic Claude Opus 4.5 模型,因为它在识别 prompt injection(提示词注入攻击)方面表现更加出色。


🆕 重大更新说明:自 2026 年初起,OpenClaw 官方已提供预构建 Docker 镜像标准化的 部署脚本。你现在有两种部署方式可选:

OpenClaw 官方现已在 GitHub Container Registry 提供预构建镜像。这是官方推荐的部署方式

官方镜像地址:

快速部署(使用官方 docker-setup.sh)


脚本会自动:

  • 创建 (配置目录:记忆、配置、API 密钥)
  • 创建 (工作空间目录:Agent 可直接访问的文件)
  • 检测到 不是默认值 时,自动执行 而非

🆕 官方支持的环境变量

支持以下环境变量进行自定义:

如果你需要深度自定义(如修改源码、安装特殊依赖),仍然可以使用手动构建方式。

以下是整合了官方镜像的自定义配置文件:


或者完全彻底地自定义:


🔑 参数说明

参数决定了 Gateway 监听的网络接口:

⚠️ 重要: 参数只接受上述关键字,不能直接写 IP 地址如 或 ,否则会报 错误。官方文档明确指出:Docker 默认使用 bind mode 值(/),而非主机别名。

🔑 的作用

根据 GitHub Issue #1679 和官方安全文档,Control UI 现在默认拒绝不安全的 HTTP 连接。如果你没有配置 HTTPS(如通过 Tailscale Serve),就必须设置 才能正常访问 Web 界面。

⚠️ 安全警告:启用 是一个安全降级。生产环境推荐使用 HTTPS(Tailscale Serve)或仅在 127.0.0.1 上打开 UI。Gateway 的 Web 界面并非为公网暴露设计,必须使用反向代理 + 认证进行保护。

🔑 Volume 的作用(仅方式 B)

这个持久化 Volume 解决了一个常见问题:每次容器重启都重新安装 openclaw 导致的 错误。通过持久化 目录,只有首次启动时才需要安装。

💡 使用官方镜像(方式 A)时不需要此 Volume,因为 OpenClaw 已预装在镜像中。

🔑 为什么使用 (仅方式 B)

Docker 容器默认没有 systemd 作为 init 系统,因此:

  • ❌ 命令会尝试使用 systemd 管理服务,会报错
  • ✅ 直接运行 Node.js 进程,无需 systemd

💡 使用官方镜像(方式 A)时,镜像的默认 entrypoint 已经正确处理了启动逻辑,无需手动指定。


如果你只需要 OpenClaw 本身(不含 FileBrowser),官方提供了一键部署脚本:


如果你想要 OpenClaw + FileBrowser 集成部署(本教程的核心价值),请继续按以下步骤操作:


目录结构说明:


将第 4 节中的 内容(方式 A 或方式 B)保存到 。


等待看到以下输出,表示启动成功:


⚠️ 🆕 已知问题(v2026.3.1):当前 v2026.3.1 Docker 镜像内的二进制文件错误地自报为 ,导致 UI 持续显示”有更新可用”横幅。这是一个纯显示问题,无功能影响。详见 GitHub Issue #32488。

OpenClaw 首次运行需要进行初始化配置:


向导会引导你完成以下配置:

  1. 选择 API Provider:推荐选择 Anthropic 或 OpenRouter
  2. 输入 API Key:填入你的 LLM API 密钥
  3. 选择默认模型:推荐 Claude Opus 4.5(更擅长防御 prompt injection)
  4. Gateway 绑定:选择 LAN 以允许远程访问
  5. 其他选项:按需配置

完成后退出容器并重启服务:


根据 Simon Willison 的教程,直接访问 会看到需要认证的错误。你需要获取访问令牌:


这将输出一个带 参数的 URL,使用该 URL 访问 Control UI。

启动完成后,可以通过健康检查端点验证服务状态:



根据 Skills 官方文档,OpenClaw 会从多个位置加载 Skills,优先级从高到低如下:

💡 实践建议:将常用的通用 Skills 放在 ,将项目相关的 Skills 放在 。

💡 🆕 路径差异注意:使用官方镜像时,配置目录为 (非 root 用户);使用方式 B 手动构建时为 。

方法一:通过 FileBrowser 上传(推荐新手)

这是最直观的方式,完全不需要使用终端:

  1. 打开
  2. 使用默认账号登录(admin/admin,请及时修改密码
  3. 进入 目录
  4. 点击”新建文件夹”,创建一个以 Skill 名称命名的目录(如 )
  5. 进入该目录,上传你的 文件

方法二:通过 SCP 远程上传

适合从本地电脑上传文件到远程服务器:


方法三:通过 ClawdHub 安装社区 Skills

ClawdHub 是 OpenClaw 的官方公共 Skills 注册表,你可以从中发现、安装和更新社区贡献的 Skills:


🔴 🆕 严重安全警告:研究人员发现 ClawdHub 上约 20%(~800个)已发布的 Skills 包含恶意代码,包括凭据窃取器和后门程序。安装社区 Skills 前必须:

  • 审查 Skill 的源代码和 文件
  • 查看作者信誉和社区评价
  • 在沙箱模式下测试新安装的 Skills
  • 避免安装来历不明或没有 GitHub 仓库的 Skills

根据 Medium 上的详细教程,每个 Skill 必须包含一个 文件,其格式如下:


⚠️ YAML Frontmatter 注意事项

  • 用引号包裹 ,避免特殊字符导致解析错误
  • 仅支持单行键值对,不要使用多行值或复杂的 YAML 结构
  • Skill 加载失败通常是因为 中声明的二进制文件未安装

手动调用:在对话框中输入


自动调用:直接描述你的需求,如果你的 Skill 描述写得清晰,OpenClaw 会自动判断并加载对应的 Skill。


Agent 配置文件位于:


💡 配置提示:根据官方文档,每个配置文件的最大字符数默认为 20,000。超过此限制时,OpenClaw 会记录警告并注入截断的头尾内容。

是最重要的人设配置文件,它定义了 AI 的”灵魂”——内部良知,指导其行为无论上下文如何:


定义了世界如何体验你的 AI——外在形象:


根据 Medium 上的安全配置指南, 是定义操作安全的关键文件:



🔴 重要警告(🆕 更新):OpenClaw 的安全形势自 2026 年初以来显著恶化。根据多家安全公司(CrowdStrike、Bitdefender、Palo Alto Networks、Cisco、Kaspersky)的联合报告,截至 2026 年 3 月:

  • 135,000+ 个 OpenClaw 实例暴露在公网上,遍布 82 个国家
  • 其中 12,812 个可被远程代码执行(RCE)利用
  • 已累计披露 13+ CVE 和 20+ GHSA
  • 韩国已限制 OpenClaw 的使用;Meta 已在内部禁止部署

请务必认真配置安全策略!

已知攻击向量:

  • CVE-2026-25253 攻击路径:恶意网页可利用此漏洞在受害者浏览器上执行 JavaScript,窃取认证令牌,建立 WebSocket 连接,禁用用户确认并逃逸沙箱容器
  • 🆕 恶意 Skills 攻击路径:安装含有后门的 ClawdHub Skills → 凭据窃取器运行 → API Key 和系统信息外泄
  • 🆕 暴露实例攻击路径:扫描公网 18789 端口 → 发现无认证实例 → 直接控制 Gateway 执行任意命令

🔴 强烈建议:立即升级到 2026.2.21 或更高版本,并确保运行 Node.js 22.12.0+!

根据 OpenClaw Security Hardening Guide 2026,一个正确加固的 OpenClaw 部署需要覆盖以下八个安全层:

根据 OpenClaw 官方安全文档,其安全策略遵循以下原则:

“Identity first: 先确定谁能与 bot 对话(DM 配对/白名单) Scope next: 再确定 bot 能在哪里操作(群组白名单、工具权限、沙箱、设备权限) Model last: 假设模型可能被操纵,设计时确保操纵的影响范围有限”

根据 Composio 的安全指南:

根据官方文档,沙箱模式可以将 Skill 的执行隔离在 Docker 容器中,限制其对宿主系统的影响。

在 中添加:


可选值:

🆕 v2026.2.21 沙箱增强

  • 浏览器容器移除默认 启动参数,改为显式 opt-in
  • noVNC 观察者会话现在需要密码认证
  • 沙箱浏览器容器默认使用专用 Docker 网络(),与主网络隔离
  • 新增 CDP(Chrome DevTools Protocol)入站源范围限制
  • 在沙箱前置条件不满足时,会自动将 重置为 ,避免残留的错误沙箱配置

官方文档建议限制以下高风险工具的使用:

  • (命令执行)
  • (浏览器控制)
  • / (网络请求)

推荐做法:

  • 使用小型模型时,启用沙箱并禁用网络相关工具
  • 对于生产环境,使用白名单机制限制可执行的命令
  • 敏感操作前,配置 approval gates(审批门控)
  • 将密钥存储在环境变量中,不要放入提示词
  • 🆕 运行 Docker 容器时使用安全限制参数:、

根据 OCSAS 项目(OpenClaw Security Audit Script):

  • ☐ 升级到最新版本(2026.2.21+,推荐 2026.3.1)
  • ☐ 🆕 确认 Node.js 版本 ≥ 22.12.0()
  • ☐ 配置 AGENTS.md 安全规则
  • ☐ 启用沙箱模式
  • ☐ 关闭 mDNS 发现()
  • ☐ 使用 HTTPS 或 Tailscale Serve
  • ☐ 🆕 配置反向代理 + 认证(Gateway Web 界面不应直接暴露在公网)
  • ☐ 🆕 审核所有已安装的 ClawdHub Skills
  • ☐ 🆕 检查 DOCKER-USER 防火墙策略(防止端口绕过 iptables 规则直接暴露)
  • ☐ 运行 检查配置
  • ☐ 定期审计访问日志

以下是你在日常维护中最常用的命令,建议收藏备用。


⚠️ Docker 环境特别说明:由于 Docker 容器没有 systemd, 等命令无法在容器中使用,会报 错误。请使用 替代。


v2026.3.1 起,Gateway 内置了 HTTP 健康检查端点:


如果你使用官方镜像(方式 A),Docker HEALTHCHECK 已自动配置。可以通过以下命令查看健康状态:


在 Docker 环境中,可以使用 参数直接在终端与 AI 对话:



方式 A:使用官方镜像更新(推荐)


方式 B:手动构建方式更新


💡 根据 v2026.1.29 更新说明,新版本会自动迁移旧配置路径。


⚠️ 危险操作:以下命令会删除所有配置和数据!



排查清单:

  • ☐ 确认 已设置
  • ☐ 确认 已配置
  • ☐ 检查服务器防火墙是否放行 18789 端口
  • ☐ 确认 中端口映射正确()
  • ☐ 确认日志中显示 而非
  • ☐ 确认使用了带 参数的 URL

一键修复网络绑定:


警告信息:


处理方式:这些是依赖包的版本警告,不影响使用,可以忽略。使用官方镜像(方式 A)则不会遇到此问题。

症状:UI 持续显示”有更新可用”横幅,即使已是最新版本。

原因:v2026.3.1 和 v2026.3.1-beta.1 的 Docker 镜像 digest 相同,但内置二进制文件自报为 。UI 将此字符串与 GitHub latest release tag 比较后误判存在更新。

处理方式:这是纯显示问题,无功能影响。等待官方在下一版本修复即可。详见 GitHub Issue #32488。

根据官方文档,Skill 加载失败通常有以下原因:

  1. YAML 解析错误: 中包含特殊字符,用引号包裹
  2. 依赖缺失: 中声明的二进制文件未安装
  3. 路径冲突:多个 Skill 使用相同名称

如果 报告安全警告:


症状: 过程中进程被杀死,退出码 137。

原因: 阶段内存不足(至少需要 2 GB)。

解决方案

  • 增加主机 swap 空间:
  • 或改用预构建镜像(方式 A),完全避免本地构建

  • Docker 安装指南
  • Skills 系统文档
  • Gateway 配置文档
  • CLI 参考
  • 安全配置指南
  • 🆕 安全加固指南 2026

⚠️ 注意:Docker 环境中 无法使用,请用 替代


本文最后更新于 2026 年 3 月 7 日。以下是相对于初版(2026 年 2 月初)的主要变更:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/251257.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月13日 下午6:03
下一篇 2026年3月13日 下午6:03


相关推荐

关注全栈程序员社区公众号