找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2145

积分

0

好友

283

主题
发表于 2 小时前 | 查看: 2| 回复: 0

OpenClaw In Docker 提供了一种类似虚拟机的隔离环境,旨在让你通过一条命令即可运行OpenClaw服务。它不仅集成了安全的用户登录功能,还强制使用HTTPS访问,使得将OpenClaw便捷且安全地开放到互联网成为可能。

该项目已在GitHub开源:

OpenClaw In Docker 的核心特点包括:

  • 运行在类虚拟机的隔离容器中:底层基于 csvm 项目,提供了完整的 systemd 系统服务支持。
  • 用户登录功能:通过 OpenResty + Lua 实现了前端登录认证,只有成功登录后才能访问原生的 OpenClaw 管理界面。
  • 提供安全的 HTTPS 访问能力:强制使用 HTTPS 协议访问,默认使用 OpenSSL 生成的自签名证书。
  • 容器启动即运行基础服务:容器内默认运行了 openclaw、openresty、docker、cron、systemd 等服务。
  • 容器预装常用工具:内置了 chromium、playwright 等工具,方便 AI 智能体执行网页操作等任务。
  • 独立的 Docker 服务:容器内部运行着一套独立的 Docker Daemon,与宿主机的 Docker 服务完全隔离,互不影响。这种设计在需要容器内调用 Docker 的复杂运维场景下非常有用。

快速开始

步骤1:安装Docker

在运行 OpenClaw 之前,请确保你的宿主机上已经安装了 Docker 引擎。
对于国内用户,安装过程可参考 Docker资源库-部署升级 以获得更快的下载速度。

步骤2:安装OpenClaw

执行下面的命令,拉取镜像并启动容器,OpenClaw 服务将自动运行。

docker run -itd \
  --name openclaw-in-docker \
  --hostname openclaw-in-docker \
  --privileged \
  --restart always \
  -p 443:443 -p 80:80 \
  -v /lib/modules:/lib/modules:ro \
  -v openclaw-storage:/var \
  -v ./data/openclaw01:/root/.openclaw \
  -e OPENCLAW_WEB_URL="https://localhost" \
  -e OPENCLAW_USER="openclaw" \
  -e OPENCLAW_PASSWORD="openclaw" \
  registry.cncfstack.com/cncfstack/openclaw-in-docker:v2026.3.11-v0.1.0

命令执行完毕后,OpenClaw 便部署完成了。

步骤3:访问OpenClaw Web

容器运行成功后,在浏览器中访问 https://localhost
你会看到一个登录页面,需要输入默认的用户名 openclaw 和密码 openclaw。这个登录层由 OpenResty + Lua 构建,是访问后续 OpenClaw 原生管理页面的前置关卡。

OpenClaw 登录界面

登录成功后,页面会跳转到 OpenClaw 的网关仪表盘。接下来需要进行网关连接配置。

步骤4:配置网关连接信息

OpenClaw 网关令牌配置界面

在网关配置页面,需要填写以下信息:

  • WebSocket URL:固定为 wss://localhost(注意是 wss:// 协议)。
  • 网关令牌 (Token):这个令牌存储在宿主机挂载目录的配置文件中。你可以通过以下命令查询:
cat ./data/openclaw01/openclaw.json |grep 'token'|grep -v mode

输出示例:
"token": "f64687a164a25e500000000c658b3e488660001dc600c273"

将查询到的令牌字符串填入“网关令牌”输入框,然后点击【连接】按钮。

步骤5:设备审批

出于安全考虑,新的浏览器或设备首次连接网关时,会触发设备审批流程。

OpenClaw 设备审批提示界面

你可以按照页面提示的命令在宿主机上执行审批(推荐),或者直接运行容器内预置的自动审批脚本(该脚本会批准所有待审批设备,请确保访问环境可信):

docker exec -i openclaw-in-docker bash -- /usr/local/bin/openclaw-autoapprove-devices.sh

审批完成后,等待大约30秒或手动刷新页面,即可看到网关连接状态变为“正常”。

OpenClaw 网关连接正常状态

至此,OpenClaw 的核心配置已经完成。

证书配置

本方案强制使用 HTTPS 访问。如果启动时没有指定自定义证书,容器会使用自动生成的自签名证书。

如果你拥有合法的域名证书,可以按以下步骤配置:

  1. 启动命令:确保 -e OPENCLAW_WEB_URL 环境变量的值与你的证书域名匹配,例如 “https://yourdomain.com”
  2. 放置证书:将你的证书文件(.pem)和私钥文件(.key)复制到宿主机挂载目录的 ./data/openclaw01/ssl/ 路径下,并分别重命名为 cert.pemcert.key。如果该目录下已有自签名证书文件,请先执行 rm -fr ./data/openclaw01/ssl/* 进行清理。
  3. 重启容器:执行 docker restart openclaw-in-docker 使新证书生效。

镜像 Tag 版本的说明

镜像的完整 Tag 格式如下:

registry.cncfstack.com/cncfstack/openclaw-in-docker:v2026.3.11-v0.1.0

其中:

  • v2026.3.11 代表集成的 OpenClaw 核心版本号。
  • v0.1.0 代表当前 OpenClaw-In-Docker 项目自身的版本号。

你可以通过 https://cncfstack.com/i/cncfstack/openclaw-in-docker 查看所有可用的镜像标签列表。

运行命令说明

下面对 docker run 命令中的关键参数进行解读:

  • --privileged:赋予容器特权模式。主要是因为需要在容器内再运行一个 Docker 服务,涉及挂载内核路径。(注:后续会持续优化以收缩权限,目标是移除此参数)
  • --restart always:设置容器随 Docker 守护进程启动而自动重启。你也可以手动停止它(docker stop openclaw-in-docker)。
  • -v openclaw-storage:/var:为容器内的 /var 目录挂载一个独立的 Docker Volume(名为 openclaw-storage)。注意:这不是挂载宿主机目录,不要以 .// 开头。Docker 会自动管理此卷,可通过 docker volume 命令操作。
  • -v ./data/openclaw01:/root/.openclaw:这是 OpenClaw 的主要配置和数据存储目录,挂载到宿主机方便管理和持久化。
  • OPENCLAW_WEB_URL:指定 OpenClaw 的 Web 访问地址,用于登录页面、证书生成以及配置 OpenClaw 的 allowedOrigins 安全策略。
  • OPENCLAW_USEROPENCLAW_PASSWORD:Web 登录层的用户名和密码,默认均为 openclaw

OpenClaw 管理

除了通过 Web UI 管理,你也可以通过命令行进入容器内部进行操作:

docker exec -it openclaw-in-docker /bin/bash

进入容器后,你面对的是一个完整的 Debian 系统环境。当前工作目录 /app 下是 OpenClaw 的源码,而所有配置文件默认位于 /root/.openclaw/ 路径下。你可以直接执行 openclaw 系列命令进行精细化管理。

默认配置

tools 配置
考虑到容器环境本身具有较好的隔离性和可控性,本项目默认将 AI 智能体的工具调用权限设置为 full(完全开放),以支持更广泛的任务场景。

"tools": {
"profile": "full"
}

版本升级

升级到新版本非常简单,只需要使用新版本的镜像重新启动容器即可。具体步骤:

docker stop openclaw-in-docker
docker rm openclaw-in-docker
docker run -itd \  ## 再次执行上文“步骤2”中的运行命令,仅将镜像tag更新为目标版本即可

删除卸载

若要完全卸载 OpenClaw In Docker,需要清理以下几项资源:

  1. 停止并删除容器

    docker stop openclaw-in-docker
    docker rm openclaw-in-docker
  2. 删除容器镜像

    docker rmi registry.cncfstack.com/cncfstack/openclaw-in-docker:v2026.3.11-v0.1.0
  3. 删除数据卷

    docker volume rm openclaw-storage
  4. 删除OpenClaw配置数据(谨慎操作)

    rm -rf ./data/openclaw01

    ⚠️ 注意:执行此操作前,建议对 ./data/openclaw01 目录进行备份。该目录包含了你的所有配置和会话数据,备份后可用于后续迁移或恢复。

这个方案将 OpenClaw 的部署、安全和运维问题进行了封装,为开发者提供了一个开箱即用的环境。如果你对这类容器化开源实战方案感兴趣,欢迎在云栈社区分享你的使用经验或提出改进建议。




上一篇:告别杂乱数据框:Python great-tables 库打造专业级数据表格指南
下一篇:AI Agent参数化调用:替代150行代码实现电商促销资损风险巡检
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-14 07:10 , Processed in 0.758560 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表