进阶 12 分钟智能体

使用 Docker 安装 OpenClaw:分步指南及部署 jour

本指南介绍如何在个人电脑或 VPS 上使用 Docker Compose 安装 OpenClaw:获取官方仓库、完成初始配置、首次连接控制界面,然后更新及彻底卸载,不留下任何残余。文中的命令取自项目文档;由于文档更新很快,粘贴命令前请重新核对。本指南不包含本站自行开展的测试,也不提供安装耗时。所有步骤都遵循同一条规则:绝不能让 OpenClaw 网关可从互联网访问。

作者: Samir K.·更新于 2026-10-04·已在 Windows、macOS 和 Linux 上测试

#安装 OpenClaw:使用官方脚本还是 Docker?

该项目说明了两种安装 OpenClaw 的方法。第一种通过脚本将 openclaw 命令直接安装到系统中。第二种在 Docker 容器中运行网关(连接您的即时通讯服务与模型的核心进程)。两种方式最终得到的都是同一款软件和同一个配置向导,称为 onboarding。

官方脚本
对于运行 macOS、Linux 或 WSL2 的个人电脑,这是最简便的途径。脚本会安装 openclaw 命令,并在需要时安装 Node.js;随后,初始设置流程会将网关注册为您当前用户会话的服务。
Docker Compose
网关运行在容器中,主机上除了 Docker,无需安装其他软件。这是在 VPS 上部署的实用方案,也方便您一次性删除全部内容。文档将这种方式列为可选方案。
Docker不会改变的事项
容器保留了从主机挂载的配置目录、工作空间以及网络的完整访问权限,这是一道有用的隔离屏障,而非保险柜。
终端 — 脚本方法,供参考
# Télécharger et exécuter l'installateur officiel
curl -fsSL https://openclaw.ai/install.sh | bash

# Lancer l'onboarding et installer le service
openclaw onboard --install-daemon

本指南接下来采用 Docker 方式,并在更新和卸载步骤中附上脚本安装方式的对应命令。如果您仍在考虑这个工具本身有什么用,我们的“OpenClaw 是什么”页面会解答这个问题;本指南则介绍安装。

!
仅官方来源
该项目曾两次更名(先叫 Clawdbot,随后改为 Moltbot,再改为 OpenClaw),其走红引来了假冒代码仓库、假冒软件包和可疑的“一键安装器”。对于从视频、论坛或博客文章(包括本文)中找到的安装命令,在与文档核对之前,绝不要将其粘贴到终端中。请以这三个地址为准:openclaw.ai 提供脚本,github.com/openclaw/openclaw 提供代码,docs.openclaw.ai 提供文档。执行脚本前也完全可以先阅读其内容:将脚本下载为文件,打开查看,然后再运行。

#先决条件

本地智能体套件

在你的机器上执行操作的智能体:具备智能体能力的 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 入站连接。其他端口都无需开放,下文会说明这一点。
终端 — 检查工具
docker --version
docker compose version
git --version

在 Windows 上,请在 WSL2 终端中操作:安装脚本是 shell 脚本,而且文档本来也建议 Windows 用户使用 WSL2。无论使用哪种机器,都应避免选择存有个人文档和密码的机器:能够执行命令的智能体应部署在专用机器、虚拟机或租用的服务器上。

#使用Docker Compose逐步安装OpenClaw

Docker 安装依靠仓库中提供的脚本。该脚本依次完成镜像准备、初始配置和网关启动。下面四个步骤遵循这一顺序。

#1. 克隆官方仓库

终端
git clone https://github.com/openclaw/openclaw.git
cd openclaw

请逐字符核对地址:应认准 GitHub 上的 openclaw 组织,而不是名称相近的仓库。在我们所知的文档中,Docker 安装脚本名为 docker-setup.sh,位于仓库根目录。该项目经常调整文件结构,较新版本可能将该脚本放在 scripts/docker/ 下:以下命令会显示您的环境中实际存在的是哪个位置的脚本。

终端 — 定位脚本
ls docker-setup.sh scripts/docker/setup.sh 2>/dev/null

#2. 在预构建镜像和本地构建之间选择

默认情况下,脚本会根据 Dockerfile 在您的机器上构建镜像,并将其命名为 openclaw:local。这是最透明的方式,因为您编译的是刚刚克隆的代码,但这需要内存和计算时间。另一种方式是下载项目发布在 GitHub 容器镜像注册表上的镜像,只需在运行脚本前设置 OPENCLAW_IMAGE 变量。

终端 — 选项:使用发布镜像
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"

latest标签指向最新发布的版本。在服务器上,最好将其替换为仓库发布页面上的具体版本号:这样,您就能决定何时更新,并知道出现问题时应回退到哪个版本。

#3. 运行安装脚本

终端
./docker-setup.sh

根据文档说明,该脚本会依次完成五项任务:

图像
它会在本地构建镜像;如果定义了 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。

终端 — 后续添加消息服务
# WhatsApp : affiche un QR code à scanner depuis le téléphone
docker compose run --rm openclaw-cli channels login

# Telegram : avec le jeton du bot créé auprès de BotFather
docker compose run --rm openclaw-cli channels add --channel telegram --token "<jeton-du-bot>"

#检查网关是否在运行

在连接其他任何东西之前,请确保容器已启动,且其日志未报告错误。

终端
docker compose ps
docker compose logs -f openclaw-gateway

随后在相同机器的浏览器中打开控制界面,然后将其令牌粘贴到设置中。如果丢失了链接,dashboard命令会重新显示该链接,而不会尝试打开浏览器。

控制界面(从该机器本身访问)
http://127.0.0.1:18789/
终端 — 重新显示访问链接
docker compose run --rm openclaw-cli dashboard --no-open

还有两项内置检查作为补充。第一项用于诊断安装和配置;第二项用于检查危险设置。每次更改配置后,请重新运行这两项检查。

终端 — 诊断与审计
docker compose run --rm openclaw-cli doctor
docker compose run --rm openclaw-cli security audit --deep

最后一步:保护好 .env 文件。它包含网关令牌,任何持有该令牌的人都能控制智能体,进而控制智能体有权访问的一切。执行 chmod 600 .env 可将文件的读取权限限制为仅您的账户。不要将其复制到 Git 仓库中,也不要让其出现在截图中。

#在VPS上使用OpenClaw:不要暴露网关

在连接家用路由器的 PC 上,Docker 发布的端口仍仅限于局域网内访问。在 VPS 上,机器拥有公网地址:发布端口时若未指定绑定地址,整个互联网都能访问该端口。2026 年初,研究人员统计发现,数千个 OpenClaw 网关可通过这种方式访问。令牌可以保护访问权限,但只需一个漏洞就足以绕过这层保护:2026 年 1 月底修复的 CVE-2026-25253 漏洞恰恰允许攻击者窃取令牌。正确的防护做法是完全不对外暴露任何服务。

!
Docker会绕过UFW
Docker 自行定义防火墙规则。即使 UFW 显示拒绝策略,容器发布的端口仍可从外部访问。OpenClaw 安全文档因此指向 DOCKER-USER 链。不要仅依赖 UFW:请检查实际在监听的进程。
终端(在 VPS 上)——端口映射到了哪个地址?
docker compose port openclaw-gateway 18789
ss -tlnp | grep 18789

如果返回结果以 0.0.0.0 开头,就表示端口已发布到所有网络接口。三层防护叠加生效,从最外层一直到最靠近容器的一层。

供应商防火墙
托管服务商控制台提供的过滤功能会在流量到达机器之前生效,因此也先于 Docker。这里只允许 SSH 流量进入。
在 127.0.0.1 上发布
使用下方文件配置 Docker,使其仅在主机的本地地址上发布端口。
通过隧道访问
通过SSH隧道或VPN接入控制界面,绝不可通过公网地址连接。
docker-compose.override.yml — 需要根据实际情况调整的示例
services:
  openclaw-gateway:
    ports: !override
      - "127.0.0.1:18789:18789"
      - "127.0.0.1:18790:18790"

该文件是我们提供的示例,而非 OpenClaw 文档的节选:请在使用前将服务名称和端口列表与您版本的 docker-compose.yml 进行比对。标签 !override 会覆盖端口列表而非追加端口;该功能要求 Docker Compose 2.24.4 或更高版本。请将该文件与 docker-compose.yml 放在同一目录下,使用命令 docker compose up -d openclaw-gateway 重新创建容器,然后重新执行验证:此时验证应返回 127.0.0.1:18789。

终端(在您的电脑上)——通过SSH隧道连接到网关
ssh -N -L 18789:127.0.0.1:18789 utilisateur@adresse-du-vps

只要这个隧道保持开放,您电脑上的地址 http://127.0.0.1:18789/ 就能连接到服务器网关。消息应用在常规模式下无需任何入站端口:对于 WhatsApp、Telegram 或 Discord,正是网关负责建立出站连接。因此,没有理由通过域名公开控制界面。这与模型服务器的道理相同,详见我们的 Ollama 服务器安全防护指南。

#更新 OpenClaw

该项目频繁发布新版本,其中一些版本会修复安全漏洞。安装后数月不更新会带来风险,并不能节省时间。使用 Docker 时,更新就是替换镜像,然后重新创建容器;存储在 ~/.openclaw 中的数据保持不变。

  1. 01
    备份数据目录
    在任何更新之前,请备份 ~/.openclaw。新版本可能会迁移配置,而只有保留了先前状态的副本,回滚才可靠。
  2. 02
    获取新版本
    请使用 git pull 更新代码仓库,获取当前的 Dockerfile 和 Compose 文件,然后根据安装时的选择,重新构建本地镜像或下载已发布的镜像。
  3. 03
    重建容器
    重启 openclaw-gateway 服务。Docker Compose 在检测到镜像不同时会自动替换容器。
  4. 04
    检查
    运行 doctor,查看日志的最后几行,并通过您的消息应用发送一条测试消息。
终端 — 1. 备份
tar czf openclaw-sauvegarde-$(date +%F).tar.gz -C ~ .openclaw
终端 — 2和3,使用本地构建的镜像
cd openclaw
git pull
docker build -t openclaw:local -f Dockerfile .
docker compose up -d openclaw-gateway
终端 — 第 2 和第 3 步,使用已发布的镜像
cd openclaw
git pull
docker compose pull openclaw-gateway
docker compose up -d openclaw-gateway
终端 — 4. 检查
docker compose run --rm openclaw-cli doctor
docker compose logs --tail 50 openclaw-gateway

使用已发布镜像的方案要求 .env 文件中包含 OPENCLAW_IMAGE 这一行;如果安装时已定义该变量,脚本就会添加这一行。如果您已固定某个版本号,请先修改这一行。要回退,请恢复旧版本号,重新创建容器;如果配置在此期间已迁移,还需恢复备份。

→
操作前阅读版本说明,不要等到操作后
仓库的版本发布页面会列出不兼容的变更和安全修复。在执行 git pull 前花三十秒阅读,就能避免等到助手不再响应时,才从日志中发现某个设置已被重命名。

通过脚本方法,更新流程通过内置命令完成,随后执行相同的诊断。

终端 — 通过脚本安装
openclaw update
openclaw doctor

#正确卸载 OpenClaw

彻底卸载会移除三项内容:容器和镜像、磁盘上的数据,以及您曾授权给助手的访问权限。第三项往往是被遗忘的。

终端 — 1. 容器和镜像
cd openclaw
docker compose down

# Supprimer l'image utilisée (l'une ou l'autre selon votre cas)
docker image rm openclaw:local
docker image rm ghcr.io/openclaw/openclaw:latest

# Vérifier qu'il ne reste ni conteneur ni volume
docker ps -a --filter name=openclaw
docker volume ls --filter name=openclaw

~/.openclaw 目录包含配置、API 密钥、消息会话和助手的记忆。删除该目录的操作不可逆:如果您认为日后可能再次使用,或想重读助手曾记录的内容,请保留一份存档。克隆的仓库则包含 .env 文件及其令牌。

终端 — 2. 数据(不可逆)
rm -rf ~/.openclaw

# Le dépôt cloné, avec son fichier .env
cd ..
rm -rf openclaw
API 密钥
请在模型供应商处撤销交给 OpenClaw 使用的密钥。删除本地文件并不会使密钥失效。
Telegram机器人或Discord机器人
通过该服务的管理工具撤销机器人令牌或删除机器人(Telegram 使用 BotFather,Discord 使用开发者门户)。
WhatsApp
在应用中,打开已连接设备列表,并断开其中与网关对应的设备连接。
网络访问
删除为此次使用创建的防火墙规则或隧道,或将相应机器从VPN中移除。如果租用的VPS仅用于这一用途,请退订该服务器。

采用脚本安装方式时,内置卸载命令会移除服务,并询问是否删除数据;之后还需要移除该命令本身。

终端 — 通过脚本安装
openclaw uninstall
npm rm -g openclaw

#故障排除:最常见的障碍

« 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 服务无法直接通过这个地址从网关访问。这项设置属于模型连接配置,超出了本指南的范围。
终端 — 授权浏览器
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

如果上述情况都不符合,最好的排查起点仍是服务日志,接着运行 doctor 命令。在到其他地方寻找解决方案之前,请检查找到的回答的日期:提到 Clawdbot 或 Moltbot 的回答描述的是旧命令。

#随手备查的官方资料

本指南并不基于任何自行开展的测试:其中没有耗时数据、测量结果或量化比较。命令取自项目文档,而文档会随版本变化,包括脚本名称、变量和初始设置步骤。如果本页与文档存在出入,应以文档为准。

文档:使用 Docker 安装
https://docs.openclaw.ai/install/docker
文档:更新
https://docs.openclaw.ai/install/updating
文档:卸载
https://docs.openclaw.ai/install/uninstall
文档:网关安全
https://docs.openclaw.ai/gateway/security
官方仓库及版本说明
https://github.com/openclaw/openclaw/releases

#深入了解

安装只是前半部分工作:智能体还需要配置、监控和比较。本网站的这些指南进一步讲解了这里涉及的概念。

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
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。