Podman 跑容器
Gateway 住在 rootless 盒子里。
Install 导读
先跑 `./scripts/podman/setup.sh` 完成一次性构建和配置,再 `./scripts/run-openclaw-podman.sh launch` 启动容器。日常管理用 `openclaw --container openclaw` 命令,不需要 `sudo` 或 `podman exec`。最容易漏的是:setup 脚本不会把整个 `.env` 传给 Podman,只读白名单里的变量,自定义环境变量要显式传。
先讲这一页到底在解决什么
先跑 `./scripts/podman/setup.sh` 完成一次性构建和配置,再 `./scripts/run-openclaw-podman.sh launch` 启动容器。日常管理用 `openclaw --container openclaw` 命令,不需要 `sudo` 或 `podman exec`。最容易漏的是:setup 脚本不会把整个 `.env` 传给 Podman,只读白名单里的变量,自定义环境变量要显式传。
第一站
官方把 intended model 写得很清楚,翻成人话就是四句话。
Gateway 住在 rootless 盒子里。
你平时还是用宿主机上的 openclaw 遥控它。
~/.openclaw 才是家,容器只是值班箱。
官方希望你用正常 CLI,而不是把自己困在容器壳里手工敲。
第二站
这条路线的命令都很像舞台指令。
./scripts/podman/setup.sh像先把盒子、初始配置、token、小环境都准备好。
./scripts/run-openclaw-podman.sh launch像正式把盒子启动,开始值班。
./scripts/run-openclaw-podman.sh launch setup像启动时顺手拉 onboarding 老师进来,带你做第一次布置。
export OPENCLAW_CONTAINER=openclaw像把遥控器默认频道调到这只盒子,以后普通 openclaw 命令就会自动朝它发。
第三站
这是 Podman on macOS 最容易让人迷糊的点。
Podman machine 会让浏览器看起来不像真正本地访问,所以控制台可能误判设备来源。
ssh -N -L 28889:127.0.0.1:18789 ...像重新拉一根更清楚的本地电话线,把容器里的控制台牵到你 Mac 上的 28889 端口。
gateway.controlUi.allowedOrigins像先把这条新电话线的门牌登记进白名单,免得控制台说“我不认识你”。
Podman on macOS 时,SSH 隧道不是多余动作,而是让“本地访问真的像本地访问”。
第四站
这也是 Podman 路线和 Docker 路线最像的一块。
./scripts/podman/setup.sh --quadlet像请 systemd 这位值班主任接手,负责以后自动叫醒这只盒子。
~/.openclaw真正的家在这里,配置、token、workspace 都靠它长期保存。
--userns=keep-id像让容器里那位工人的身份尽量和外面这位主人对齐,少出权限扯皮。
Podman 这条路的精髓,是“容器很隔离,操作却尽量像日常 CLI”。