2.5 KiB
2.5 KiB
OpenClaw 特权模式设计
日期: 2026-03-26
目标
为运行在 116.62.17.81 上的 OpenClaw Docker 容器开启特权模式,并尽量保证应用重启或基于模板重生成编排后仍保留该配置。
现状
- 实际运行容器为
openclaw-gateway-1 - 容器由应用包 Compose 管理,而非当前仓库部署脚本管理
- 运行编排文件位于
/volume1/@appstore/com.ugreen.docker.openclaw/docker-compose.yaml - 模板文件位于
/volume1/@appstore/com.ugreen.docker.openclaw/docker-compose.tmpl - 当前
docker inspect显示HostConfig.Privileged=false
方案对比
方案一:仅修改运行中的 Compose 文件
只修改 docker-compose.yaml 并重建容器。
- 优点:生效最快
- 缺点:若应用按模板重新生成编排,配置容易丢失
方案二:同时修改 Compose 文件与模板
同时修改 docker-compose.yaml 与 docker-compose.tmpl,在 gateway 服务下新增 privileged: true。
- 优点:当前容器立刻生效,后续应用重启或重新生成编排时也更可能保留
- 缺点:若后续官方升级直接覆盖整个应用包目录,仍可能被重置
方案三:脱离 Compose 手工重建容器
绕过应用包编排,直接手工 docker run --privileged 或其他方式重建容器。
- 优点:理论上可实现
- 缺点:容易与现有应用包管理冲突,不符合最短路径
最终方案
采用方案二。
变更范围
只修改以下两个服务器文件:
/volume1/@appstore/com.ugreen.docker.openclaw/docker-compose.yaml/volume1/@appstore/com.ugreen.docker.openclaw/docker-compose.tmpl
改动内容保持最小化,仅在 services.gateway 下增加:
privileged: true
不调整挂载、网络模式、环境变量或业务配置。
实施步骤
- 备份当前 Compose 文件与模板文件
- 在两个文件的
gateway服务下增加privileged: true - 使用该 Compose 文件重建
openclaw-gateway-1 - 使用
docker inspect校验Privileged=true - 再次读取模板文件,确认持久化来源也已同步更新
验证标准
docker inspect openclaw-gateway-1显示HostConfig.Privileged=truedocker-compose.yaml含privileged: truedocker-compose.tmpl含privileged: true
风险说明
本方案已覆盖当前运行编排和当前模板,但若厂商升级时整体覆盖 /volume1/@appstore/com.ugreen.docker.openclaw/,特权配置仍可能被官方包重置。