用docker来安装openclaw

2026-05-05阅读 0热度 0
ai docker 容器

用docker来安装openclaw

前言

最近OpenClaw的热度确实居高不下,但它本质上仍是一个处于高速成长期的系统,远未到“成熟稳定”的阶段。这不奇怪,看看开源代码库,一天一个Release算是常态,频繁且快速的迭代正是它活力的体现。

随之而来的,自然是各种意料之外的Bug、与第三方插件的兼容性问题。如果选择在裸机环境直接部署,无论是升级尝鲜还是遇到问题需要回退版本,操作起来都挺折腾。

怎么办?一个高效的思路,是把它装进Docker容器里。这么做的好处显而易见:环境完全隔离,版本切换和回退变得干净利落,管理和维护的复杂度直线下降。

安装

通常,用Docker部署OpenClaw有两种主流思路,各有各的适用场景:

  1. 启动一个基础镜像,当作VPS来手动安装:这种方式灵活度高,特别适合测试新版本、开发调试插件。
  2. 编写Dockerfile构建专属镜像,再用Docker Compose编排启动:这种方式更适合封装标准化环境,便于团队分享和持续集成。

下面,咱们就一起来实际操作,感受一下这两种方法的差异和门道。

在基础镜像内手工安装

根据官方推荐,OpenClaw需要Node 22或更高版本。所以,我们选择node:22-trixie这个官方镜像作为起点。

启动容器的命令如下:

docker run -it --net=host -v ./openclaw:/root/.openclaw --name openclaw node:22-trixie bash

简单解释几个关键参数:

  • --net=host:直接使用宿主机网络,省去端口映射的麻烦,测试时最方便。
  • -v ./openclaw:/root/.openclaw:将OpenClaw的数据目录挂载出来持久化,这是核心数据,必须保留。
  • --name openclaw:给容器起个名字,方便后续管理。
  • bash:最后启动Bash shell,进入一个干净的Node环境。
安装

进入容器后,直接用NPM安装最新版:

npm install -g openclaw@latest

看到成功的提示,安装这一步就算完成了。

OpenClaw安装成功提示

初始化配置

第一次启动,推荐使用官方的引导命令 openclaw onboard。它会以交互式问答的方式,帮你完成所有基础配置,并在最后自动启动网关服务。

OpenClaw onboard引导配置过程

上图展示了引导流程,红色部分是每个步骤的提示,灰色部分则是需要你输入或选择的信息。整个过程基本按提示操作即可,但有一个小坑需要留意:

飞书插件安装提示

飞书插件其实已经被集成在OpenClaw基础包里了。如果这里你再选择“安装”,系统里就会出现两个版本,极易导致冲突。所以,直接跳过这一步就好。

当引导流程走到最后,看到下图这个页面时,意味着配置完成了,并且服务已经启动。

OpenClaw onboard配置完成界面

但先别高兴太早,这时候其实还访问不了。因为“快速配置”模式默认监听的是本地回环地址(127.0.0.1),并且禁用了非HTTPS访问。如果你计划把它部署在生产环境,放在Nginx或Caddy这类反向代理后面,这个配置是合适的。但对于我们当前本地测试,就需要调整一下。

先用 Ctrl+C 终止运行。然后,直接编辑配置文件:

vim ~/.openclaw/openclaw.json

找到配置文件中 gateway 的部分,修改 modebindcontrolUi 这几个关键项。修改后的配置大概长这样:

"gateway": {
  "port": 18789,
  "mode": "local",
  "bind": "lan",
  "controlUi": {
    "enabled": true,
    "allowInsecureAuth": true
  },
  "auth": {
    "mode": "token",
    "token": "1876cbd181533358223674dab4841f60c252f62c206a53f9"
  },
  "tailscale": {
    "mode": "off",
    "resetOnExit": false
  }
}

配置好之后,重新启动网关:

openclaw gateway

当看到熟悉的启动成功日志时,大功告成。

OpenClaw网关启动成功

现在,就可以在浏览器里访问了,地址格式是:
http://你的服务器IP:18789/?token=你的配置文件中的token

测试一下

首次访问,系统会提示你为这个网关实例起个名字,完成后就能进入管理后台了。

为OpenClaw网关命名

保存镜像

折腾了这么久,一个可用的环境配置好了,当然要把它保存下来。在宿主机上执行:

docker ps
docker commit f0bd197aec12 openclaw:0.0.1

通过docker commit保存容器为镜像

这样一来,我们就有了一个属于自己的、特定版本的OpenClaw镜像。以后想测试其他版本,或者遇到问题需要回滚,就变得无比简单。

使用Dockerfile构建openclaw镜像

说完了灵活的手动安装,再来看看如何通过标准化的Dockerfile来构建和分发。

OpenClaw官方本身就支持Docker部署,源码库里提供了完整的Docker配置,文档里也有相应说明。我们的思路是:以官方配置为蓝本,做一些定制化简化,比如把一些动态配置改为写死的默认值,让构建和使用更直接。

首先,拉取代码:

git clone --depth 1 https://github.com/openclaw/openclaw

然后,打开Dockerfile进行修改,主要动了三个地方:

  1. 在基础镜像里额外安装了 gitcurljq 等常用工具。
  2. 将运行用户改为 root,避免一些权限上的麻烦。
  3. 删除了自带的飞书插件包。这步并非必须,只是因为个人习惯使用另一个第三方的飞书插件,而两个插件共存会冲突。

修改Dockerfile的要点

紧接着,开始构建镜像:

docker build -t openclaw:local -f Dockerfile .

镜像构建完成后,用Docker Compose来编排启动就非常优雅了。一个简单的 docker-compose.yml 可以这样写:

services:
  openclaw:
    image: openclaw:local
    container_name: openclaw
    restart: unless-stopped
    environment:
      TZ: Asia/Shanghai
      HOME: /root
      TERM: xterm-256color
    volumes:
      - /home/openclaw:/root
      - ./logs:/tmp/openclaw
    command: ["node", "dist/index.js", "gateway", "--port", "18789"]

这里有几个点值得解释:

  • /home/openclaw:/root:将容器内root用户的所有数据持久化到宿主机,这是核心。
  • ./logs:/tmp/openclaw:OpenClaw默认将日志输出到/tmp/openclaw,挂载出来方便实时查看。
  • command:这是最终启动服务的命令。但注意,第一次运行时不能直接加这个参数,因为还没有配置文件。第一次启动可以省略此配置,使用Dockerfile里的默认命令进入无配置启动模式。

初始化配置

配置环节和手动安装时大同小异,只是进入容器的方式不同。你可以选择:

# 方式一:进入已运行的容器进行配置
docker exec -it openclaw bash
node /app/disk/index.js onboard

# 方式二:直接运行一次性命令完成配置
docker compose run --rm openclaw onboard

后续的配置步骤,和前面“手工安装”部分完全一致,就不再重复了。

最后需要提醒一个关键区别:使用官方Dockerfile构建的镜像,其命令执行方式与NPM全局安装不同,所有操作都需要通过node来调用核心文件。比如安装插件:

# NPM全局安装方式
openclaw plugins install @m1heng-clawd/feishu

# Dockerfile构建镜像方式
node /app/dist/index.js plugins install @m1heng-clawd/feishu

小结

客观地说,OpenClaw正在给AI应用开发带来一场变革——它让一个只会“对话”的AI,真正拥有了感知和操作现实世界的“双手”。潜力巨大,但挑战也同样明显。

目前这个阶段,项目迭代速度极快,新功能和新Bug可能同时到来。采用Docker化的部署策略,无疑是最明智的选择。它提供了完美的环境隔离,让版本管理、升级回退这些操作变得轻量且可控。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策