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 的网关仪表盘。接下来需要进行网关连接配置。
步骤4:配置网关连接信息

在网关配置页面,需要填写以下信息:
- WebSocket URL:固定为
wss://localhost(注意是 wss:// 协议)。
- 网关令牌 (Token):这个令牌存储在宿主机挂载目录的配置文件中。你可以通过以下命令查询:
cat ./data/openclaw01/openclaw.json |grep 'token'|grep -v mode
输出示例:
"token": "f64687a164a25e500000000c658b3e488660001dc600c273"
将查询到的令牌字符串填入“网关令牌”输入框,然后点击【连接】按钮。
步骤5:设备审批
出于安全考虑,新的浏览器或设备首次连接网关时,会触发设备审批流程。

你可以按照页面提示的命令在宿主机上执行审批(推荐),或者直接运行容器内预置的自动审批脚本(该脚本会批准所有待审批设备,请确保访问环境可信):
docker exec -i openclaw-in-docker bash -- /usr/local/bin/openclaw-autoapprove-devices.sh
审批完成后,等待大约30秒或手动刷新页面,即可看到网关连接状态变为“正常”。

至此,OpenClaw 的核心配置已经完成。
证书配置
本方案强制使用 HTTPS 访问。如果启动时没有指定自定义证书,容器会使用自动生成的自签名证书。
如果你拥有合法的域名证书,可以按以下步骤配置:
- 启动命令:确保
-e OPENCLAW_WEB_URL 环境变量的值与你的证书域名匹配,例如 “https://yourdomain.com”。
- 放置证书:将你的证书文件(
.pem)和私钥文件(.key)复制到宿主机挂载目录的 ./data/openclaw01/ssl/ 路径下,并分别重命名为 cert.pem 和 cert.key。如果该目录下已有自签名证书文件,请先执行 rm -fr ./data/openclaw01/ssl/* 进行清理。
- 重启容器:执行
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_USER 与 OPENCLAW_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,需要清理以下几项资源:
-
停止并删除容器:
docker stop openclaw-in-docker
docker rm openclaw-in-docker
-
删除容器镜像:
docker rmi registry.cncfstack.com/cncfstack/openclaw-in-docker:v2026.3.11-v0.1.0
-
删除数据卷:
docker volume rm openclaw-storage
-
删除OpenClaw配置数据(谨慎操作):
rm -rf ./data/openclaw01
⚠️ 注意:执行此操作前,建议对 ./data/openclaw01 目录进行备份。该目录包含了你的所有配置和会话数据,备份后可用于后续迁移或恢复。
这个方案将 OpenClaw 的部署、安全和运维问题进行了封装,为开发者提供了一个开箱即用的环境。如果你对这类容器化开源实战方案感兴趣,欢迎在云栈社区分享你的使用经验或提出改进建议。