使用 Docker 安装 OpenClaw:分步指南及部署 jour
本指南介绍如何在个人电脑或 VPS 上使用 Docker Compose 安装 OpenClaw:获取官方仓库、完成初始配置、首次连接控制界面,然后更新及彻底卸载,不留下任何残余。文中的命令取自项目文档;由于文档更新很快,粘贴命令前请重新核对。本指南不包含本站自行开展的测试,也不提供安装耗时。所有步骤都遵循同一条规则:绝不能让 OpenClaw 网关可从互联网访问。
#安装 OpenClaw:使用官方脚本还是 Docker?
该项目说明了两种安装 OpenClaw 的方法。第一种通过脚本将 openclaw 命令直接安装到系统中。第二种在 Docker 容器中运行网关(连接您的即时通讯服务与模型的核心进程)。两种方式最终得到的都是同一款软件和同一个配置向导,称为 onboarding。
- 官方脚本
- 对于运行 macOS、Linux 或 WSL2 的个人电脑,这是最简便的途径。脚本会安装 openclaw 命令,并在需要时安装 Node.js;随后,初始设置流程会将网关注册为您当前用户会话的服务。
- Docker Compose
- 网关运行在容器中,主机上除了 Docker,无需安装其他软件。这是在 VPS 上部署的实用方案,也方便您一次性删除全部内容。文档将这种方式列为可选方案。
- Docker不会改变的事项
- 容器保留了从主机挂载的配置目录、工作空间以及网络的完整访问权限,这是一道有用的隔离屏障,而非保险柜。
本指南接下来采用 Docker 方式,并在更新和卸载步骤中附上脚本安装方式的对应命令。如果您仍在考虑这个工具本身有什么用,我们的“OpenClaw 是什么”页面会解答这个问题;本指南则介绍安装。
#先决条件
在你的机器上执行操作的智能体:具备智能体能力的 Cline、MCP、n8n + Ollama、本地自动化。
- 在线空间,终身可用
- PDF + 文件
- 30 天内退款
网关本身资源消耗较少:它负责转发消息和调用模型。以下要求主要涉及 Docker 和镜像构建。
- Docker 和 Compose v2
- 在 macOS 和 Windows(使用 WSL2)上使用 Docker Desktop,或在 Linux 上使用 Docker Engine 搭配 Compose 插件。命令写作 docker compose,中间有一个空格:旧版 v1 的 docker-compose 二进制程序不适用。
- Git
- 用于克隆官方仓库,其中包含 Dockerfile、docker-compose.yml 文件和安装脚本。
- 内存
- 文档要求至少 2 GB 内存才能构建镜像。在仅 1 GB 内存的主机上,系统可能因内存不足而中断编译(退出码 137)。下方提供的预构建镜像可避免此步骤。
- 磁盘
- 预留空间用于Docker镜像和日志文件。文档未提供具体数值:请使用docker system df监控磁盘空间。
- 一个模型
- 在线服务商的 API 密钥,并设置支出上限;或一个本地模型。本地模型的接入是另一个话题,本指南不涉及。
- 在VPS上
- 通过密钥进行 SSH 访问,并将服务商的防火墙设置为仅允许 SSH 入站连接。其他端口都无需开放,下文会说明这一点。
在 Windows 上,请在 WSL2 终端中操作:安装脚本是 shell 脚本,而且文档本来也建议 Windows 用户使用 WSL2。无论使用哪种机器,都应避免选择存有个人文档和密码的机器:能够执行命令的智能体应部署在专用机器、虚拟机或租用的服务器上。
#使用Docker Compose逐步安装OpenClaw
Docker 安装依靠仓库中提供的脚本。该脚本依次完成镜像准备、初始配置和网关启动。下面四个步骤遵循这一顺序。
#1. 克隆官方仓库
请逐字符核对地址:应认准 GitHub 上的 openclaw 组织,而不是名称相近的仓库。在我们所知的文档中,Docker 安装脚本名为 docker-setup.sh,位于仓库根目录。该项目经常调整文件结构,较新版本可能将该脚本放在 scripts/docker/ 下:以下命令会显示您的环境中实际存在的是哪个位置的脚本。
#2. 在预构建镜像和本地构建之间选择
默认情况下,脚本会根据 Dockerfile 在您的机器上构建镜像,并将其命名为 openclaw:local。这是最透明的方式,因为您编译的是刚刚克隆的代码,但这需要内存和计算时间。另一种方式是下载项目发布在 GitHub 容器镜像注册表上的镜像,只需在运行脚本前设置 OPENCLAW_IMAGE 变量。
latest标签指向最新发布的版本。在服务器上,最好将其替换为仓库发布页面上的具体版本号:这样,您就能决定何时更新,并知道出现问题时应回退到哪个版本。
#3. 运行安装脚本
根据文档说明,该脚本会依次完成五项任务:
- 图像
- 它会在本地构建镜像;如果定义了 OPENCLAW_IMAGE,则会下载该镜像。
- Onboarding
- 它会在临时容器中启动配置助手。
- 令牌
- 它生成网关访问令牌,并将其写入仓库根目录下的 .env 文件中。
- 启动
- 它通过 Docker Compose 启动网关,服务名为 openclaw-gateway。
- 数据
- 它将配置和工作区放置在主机的 ~/.openclaw 和 ~/.openclaw/workspace 目录中。这些目录在删除容器后仍会保留。
#4. 回答初始设置流程中的问题
设置向导会询问有关模型、即时通信服务和网关的问题。在网关这一部分,脚本会显示适用于容器环境的预期回答。这些回答与常规安装时不同,其中第一个值得解释一下。
- Gateway bind:lan
- 在容器内部,网关必须监听 Docker 网络接口,否则映射到宿主机的端口就无法连接到网关。这个设置并不决定哪些服务可从外部访问:这取决于宿主机上的设置,参见 VPS 部分。
- 网关认证:token
- 访问网关的界面和API需要令牌。
- 网关令牌
- 使用脚本刚刚显示的那个令牌,以确保它与 .env 文件中的值一致。
- Tailscale exposure : Off
- 不会自动开放远程访问。是否允许远程访问,可以稍后在充分了解相关情况后再决定。
- Install Gateway daemon : No
- 在这种配置中,是 Docker Compose 重启容器,而不是系统服务。
模型方面,请提供设有预算上限的 API 密钥,而不是您的主密钥。即时通讯方面,您可以先跳过这一步,待确认网关正常后再回来设置。请记住命令转换规则:文档中所有以 openclaw 开头的命令,在这里执行时都要在前面加上 docker compose run --rm openclaw-cli。
#检查网关是否在运行
在连接其他任何东西之前,请确保容器已启动,且其日志未报告错误。
随后在相同机器的浏览器中打开控制界面,然后将其令牌粘贴到设置中。如果丢失了链接,dashboard命令会重新显示该链接,而不会尝试打开浏览器。
还有两项内置检查作为补充。第一项用于诊断安装和配置;第二项用于检查危险设置。每次更改配置后,请重新运行这两项检查。
最后一步:保护好 .env 文件。它包含网关令牌,任何持有该令牌的人都能控制智能体,进而控制智能体有权访问的一切。执行 chmod 600 .env 可将文件的读取权限限制为仅您的账户。不要将其复制到 Git 仓库中,也不要让其出现在截图中。
#在VPS上使用OpenClaw:不要暴露网关
在连接家用路由器的 PC 上,Docker 发布的端口仍仅限于局域网内访问。在 VPS 上,机器拥有公网地址:发布端口时若未指定绑定地址,整个互联网都能访问该端口。2026 年初,研究人员统计发现,数千个 OpenClaw 网关可通过这种方式访问。令牌可以保护访问权限,但只需一个漏洞就足以绕过这层保护:2026 年 1 月底修复的 CVE-2026-25253 漏洞恰恰允许攻击者窃取令牌。正确的防护做法是完全不对外暴露任何服务。
如果返回结果以 0.0.0.0 开头,就表示端口已发布到所有网络接口。三层防护叠加生效,从最外层一直到最靠近容器的一层。
- 供应商防火墙
- 托管服务商控制台提供的过滤功能会在流量到达机器之前生效,因此也先于 Docker。这里只允许 SSH 流量进入。
- 在 127.0.0.1 上发布
- 使用下方文件配置 Docker,使其仅在主机的本地地址上发布端口。
- 通过隧道访问
- 通过SSH隧道或VPN接入控制界面,绝不可通过公网地址连接。
该文件是我们提供的示例,而非 OpenClaw 文档的节选:请在使用前将服务名称和端口列表与您版本的 docker-compose.yml 进行比对。标签 !override 会覆盖端口列表而非追加端口;该功能要求 Docker Compose 2.24.4 或更高版本。请将该文件与 docker-compose.yml 放在同一目录下,使用命令 docker compose up -d openclaw-gateway 重新创建容器,然后重新执行验证:此时验证应返回 127.0.0.1:18789。
只要这个隧道保持开放,您电脑上的地址 http://127.0.0.1:18789/ 就能连接到服务器网关。消息应用在常规模式下无需任何入站端口:对于 WhatsApp、Telegram 或 Discord,正是网关负责建立出站连接。因此,没有理由通过域名公开控制界面。这与模型服务器的道理相同,详见我们的 Ollama 服务器安全防护指南。
#更新 OpenClaw
该项目频繁发布新版本,其中一些版本会修复安全漏洞。安装后数月不更新会带来风险,并不能节省时间。使用 Docker 时,更新就是替换镜像,然后重新创建容器;存储在 ~/.openclaw 中的数据保持不变。
- 01备份数据目录在任何更新之前,请备份 ~/.openclaw。新版本可能会迁移配置,而只有保留了先前状态的副本,回滚才可靠。
- 02获取新版本请使用 git pull 更新代码仓库,获取当前的 Dockerfile 和 Compose 文件,然后根据安装时的选择,重新构建本地镜像或下载已发布的镜像。
- 03重建容器重启 openclaw-gateway 服务。Docker Compose 在检测到镜像不同时会自动替换容器。
- 04检查运行 doctor,查看日志的最后几行,并通过您的消息应用发送一条测试消息。
使用已发布镜像的方案要求 .env 文件中包含 OPENCLAW_IMAGE 这一行;如果安装时已定义该变量,脚本就会添加这一行。如果您已固定某个版本号,请先修改这一行。要回退,请恢复旧版本号,重新创建容器;如果配置在此期间已迁移,还需恢复备份。
通过脚本方法,更新流程通过内置命令完成,随后执行相同的诊断。
#正确卸载 OpenClaw
彻底卸载会移除三项内容:容器和镜像、磁盘上的数据,以及您曾授权给助手的访问权限。第三项往往是被遗忘的。
~/.openclaw 目录包含配置、API 密钥、消息会话和助手的记忆。删除该目录的操作不可逆:如果您认为日后可能再次使用,或想重读助手曾记录的内容,请保留一份存档。克隆的仓库则包含 .env 文件及其令牌。
- API 密钥
- 请在模型供应商处撤销交给 OpenClaw 使用的密钥。删除本地文件并不会使密钥失效。
- Telegram机器人或Discord机器人
- 通过该服务的管理工具撤销机器人令牌或删除机器人(Telegram 使用 BotFather,Discord 使用开发者门户)。
- 在应用中,打开已连接设备列表,并断开其中与网关对应的设备连接。
- 网络访问
- 删除为此次使用创建的防火墙规则或隧道,或将相应机器从VPN中移除。如果租用的VPS仅用于这一用途,请退订该服务器。
采用脚本安装方式时,内置卸载命令会移除服务,并询问是否删除数据;之后还需要移除该命令本身。
#故障排除:最常见的障碍
- « unauthorized » 或 « pairing required (1008) »
- 浏览器尚未获得网关批准。请重新显示访问链接,然后使用下面的命令列出设备并批准该设备。这种情况在 Docker 环境中以及通过隧道访问时很常见,因为连接并非来自容器的本地地址。
- 构建中断,退出码 137
- 系统因内存不足终止了编译。请通过 OPENCLAW_IMAGE 改用已发布的镜像,或使用至少配备 2 GB 内存的机器。
- 拒绝访问 /home/node/.openclaw
- 该镜像以 node 用户运行,用户 ID 为 1000。从宿主机挂载的目录必须归该用户所有:sudo chown -R 1000:1000 ~/.openclaw。
- 端口 18789 已被占用
- 另一个服务或之前安装的 OpenClaw 正在占用端口。请停止占用端口的程序,或在重新创建容器之前修改 .env 文件中的 OPENCLAW_GATEWAY_PORT。
- docker compose introuvable
- 您使用的是旧版 docker-compose 二进制文件或未安装 Compose 插件。请根据您的发行版安装 Compose v2 插件。
- 无法连接本地模型
- 在容器中,localhost 指的是容器本身,而不是主机。因此,在主机端监听 http://localhost:11434 的 Ollama 服务无法直接通过这个地址从网关访问。这项设置属于模型连接配置,超出了本指南的范围。
如果上述情况都不符合,最好的排查起点仍是服务日志,接着运行 doctor 命令。在到其他地方寻找解决方案之前,请检查找到的回答的日期:提到 Clawdbot 或 Moltbot 的回答描述的是旧命令。
#随手备查的官方资料
本指南并不基于任何自行开展的测试:其中没有耗时数据、测量结果或量化比较。命令取自项目文档,而文档会随版本变化,包括脚本名称、变量和初始设置步骤。如果本页与文档存在出入,应以文档为准。
#深入了解
安装只是前半部分工作:智能体还需要配置、监控和比较。本网站的这些指南进一步讲解了这里涉及的概念。
- OpenClaw:是什么,需要安装吗?
- 了解网关的工作原理、用途和风险,以便在安装前作出决定。https://quelllm.fr/guide/openclaw-c-est-quoi
- 加固 Ollama 服务器的安全性
- 防火墙、本地监听和远程访问:将同样的最小化暴露原则应用于模型服务器。 https://quelllm.fr/guide/securiser-serveur-ollama
- 使用 Docker Compose 在生产环境中部署 LLM
- 用于持续运行的技术栈的 Compose 文件、重启、日志和备份。https://quelllm.fr/guide/deployer-llm-docker-compose-production
- 使用 Docker 安装 Ollama
- 在容器中运行模型服务器,可在同一台机器或另一台机器上。https://quelllm.fr/guide/ollama-docker-installation-guide
- 在 Docker 中使用 Ollama 的 Agent Zero
- 另一个以容器形式提供的自托管智能体,可用于比较不同方案。 https://quelllm.fr/guide/agent-zero-ollama-docker
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。