OpenClaw 容器化部署:Docker 与 Podman 跑网关的要点
服务器玩家和追求环境隔离的用户多半会选择容器。官方仓库自带 Dockerfile 与 docker-compose 配置,也单独维护了 Podman 无 root 部署文档。
容器方案适合谁
- VPS 上的长期部署:环境干净、升级回滚只动镜像层。
- 已有 compose 生态的家庭服务器:把网关和其他自托管服务放在同一份编排里。
- 需要多实例隔离:每个容器一个独立网关,天然满足「不同信任边界分开跑」的安全建议。
容器特有注意点
- 渠道二维码登录:WhatsApp 这类扫码渠道需要在终端里显示二维码,无头容器里要确保日志或终端输出可达,否则配对那一步会卡住。
- 网络模式:官方文档在讲 Telegram 仪表板小程序时给过明确示例——涉及主机网络能力(如挂载宿主机的 tailscaled 套接字)时,桥接网络端口映射不够,需要 host 网络模式。类似的主机交互需求在容器里都要提前想清楚。
- 数据持久化:把状态目录(默认容器内用户目录下的 openclaw 文件夹)挂载为卷,否则重建容器 = 记忆、会话、配对全部清零。
- 技能依赖:需要编译或系统依赖的技能,要么用官方镜像里预装的,要么在容器里补依赖——官方技能文档建议通过沙箱的 setupCommand 安装缺失依赖。
部署后验证
和裸机一样三步:网关状态、控制界面可达、发一条测试消息。容器里再加一步——docker logs(或 podman logs)确认启动日志里监听地址正确,没有端口映射错位。
Podman 的差异
Podman 主打无 root 运行,安全边界更好;日常命令与 Docker 高度同构,官方把它作为 Docker 的替代路径单独成篇。已装 Docker 的用户不必专门迁移。