OpenClaw-In-Docker安全、独立、便捷的OpenClaw部署运行方案,已在Github开源

0 阅读5分钟

OpenClaw In Docker 提供一个类似虚拟机的环境,一键运行 OpenClaw 服务,并提供安全的用户登录与 HTTPS 访问 OpenClaw 能力,使其可以便捷、安全的运行开放在互联网上。

Github 地址: github.com/cncfstack/o…

OpenClaw In Docker 特点:

  • 运行在一个类虚拟机的隔离容器中:这个类虚拟机基于 csvm 项目,提供 systemd 系统服务。
  • 用户登录功能:基于OpenResty+Lua提供用户登录认证功能,用户登录成功后才能访问 OpenClaw 页面。
  • 提供安全的 HTTPS 访问能力:必须使用HTTPS访问,默认使用 OpenSSL 自签证书。
  • 容器启动默认运行基础服务:openclaw、openrestry、docker、cron、systemd 等。
  • 容器默认安装的工具: chromium、playwright等。
  • 独立的docker服务: 容器内的Docker和宿主机上的Docker是两套完全独立的服务,互不影响。

快速开始

步骤1:安装Docker

在运行 OpenClaw 之前,请确保已经安装 Docker。

国内用户可参考 Docker资源库-部署升级 安装Docker。

步骤2:安装OpenClaw

运行如下命令,拉取 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 原生页面。

登录页面

登录成功后,进入网关页面。需要配置网关连接信息。

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

网关Token配置

OpenClaw 网关连接 WebSocket URL 为 wss://localhost(注意是 wss://)。

网关令牌位于挂载路径的 openclaw.json 配置文件文件中,默认由 OpenClaw 自动创建。

令牌 Token 查询命令:

cat ./data/openclaw01/openclaw.json |grep 'token'|grep -v mode

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

输入Token后点击【连接】来访问网关。

步骤5: 设备审批

在输入 Token 连接网关后。

为保障安全,新的浏览器或电脑等客户端在访问 OpenClaw 时会收到如下提示

设备审批

可以通过提示的命令进行审批(推荐)

也可以通过如下命令进行手动审批,该脚本会审批所有的设备,请确保你的 OpenClaw 是被可信的人访问。

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

审批后页面大概等30秒或手动刷新页面即可

OpenClaw配置完成

证书配置

OpenClaw In Docker 限制必须使用 HTTPS 访问,如果没有指定证书,默认会自签名证书使用。

对于有合法证书的域名,配置方法如下

  1. 启动命令配置与证书匹配的域名 -e OPENCLAW_WEB_URL="https://localhost"
  2. 将证书复制到挂载的目录的ssl目录下 ./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

镜像的 Tag 详情与列表 cncfstack.com/i/cncfstack…

Tag 中 v2026.3.11 是 OpenClaw 的版本号,v0.1.0 是指当前项目(OpenClaw-In-Docker)的版本号。

运行命令说明

docker run 命令的主要参数介绍:

  • --privileged 主要是在容器中又运行docker,需要挂载一些内核路径。(TODO:权限在逐渐梳理收缩中,目标是移除该参数)
  • --restart always 设置该容器在 docker 启动时自动重启。可人工停止 docker stop openclaw
  • -v openclaw-storage:/var 给容器内容 /var 目录单独挂载一个 Docker Volume,注意这里不是挂载目录,不要以 .// 开头,docker会自动创建该名称的 Docker volume,可以通过 docker volume 命令管理。该选项也是为了解决容器内运行Docker的问题。
  • -v ./data/openclaw01:/root/.openclaw 这是 OpenClaw 运行的主要配置文件,可以根据需求自行修改。
  • OPENCLAW_WEB_URL: 是指定 OpenClaw 的 Web 地址,用于登录,证书制作与配置,以及OpenClaw的 allowedOrigins 配置 。
  • OPENCLAW_WEB_URLOPENCLAW_PASSWORD: 是登录的账号密码,默认账号密码都是 openclaw

OpenClaw 管理

管理 OpenClaw 时,除了通过 Web UI,也可以通过命令行进行管理。

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

进入容器后就是 debian 的系统环境了,当前的路径 /app 是 OpenClaw 的源码。

配置文件在默认 /root/.openclaw/ 路径

执行 openclaw 相关命令进行管理。

默认配置

tools 配置

当前项目是在容器内运行,安全性可控,tools 工具调用能力默认设置为 full 开放。

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

版本升级

版本升级之需要使用新版本镜像启动即可。

升级步骤:

docker stop openclaw-in-docker
docker rm openclaw-in-docker
docker run -itd \ ## 上文的运行命令,将镜像tag更新为新版本即可

删除卸载

OpenClaw 运行主要涉及如下几个资源,移除后即完全卸载

  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数据。⚠️注意:建议对该目录进行备份,以免数据丢失,后续可以基于该目录进行迁移或重新复活OpenClaw。
    rm -rf ./data/openclaw01