OpenClaw 容器化部署完整实战手册

在这里插入图片描述

文档信息

编写时间:2026-05-20
部署环境:VMware 虚拟机 CentOS7/8
运行环境:Docker + Docker Compose
业务用途:对接 DeepSeek 国内大模型智能对话,预留微信等社交通道拓展
核心目标:完成部署初始化 + 屏蔽代理干扰 + 虚拟机重启全自动拉起服务


一、前期环境说明

  1. 网络现状
  • 本地虚拟机环境配置过全局 Socks5 代理 192\.168\.108\.1:7897

  • 系统环境变量残留代理配置,拉取境外镜像 / 编译依赖必须开启科学上网

  • 日常对接国内 DeepSeek 大模型无需外网、无需科学上网

  1. 故障前置原因
    此前虚拟机因磁盘空间爆满异常断电宕机,导致 Docker 本地镜像损坏,触发二次重新完整编译构建

  2. 会话数据说明

  • 优雅停机:聊天会话、上下文记忆可本地持久化保留

  • 强制断电 / 异常宕机:内存临时对话直接丢失,仅程序配置、API 密钥、功能偏好设置保留


二、完整部署初始化流程

1. 项目启动初始化引导

进入项目目录执行初始化配置向导

docker compose run --rm openclaw-cli onboard

2. 大模型核心配置

  1. 模型选择:选定 DeepSeek 系列模型

  2. 填入合法 DeepSeek 平台 API 密钥

  3. 保留默认模型版本,直接回车确认

  4. 配置要点:国内接口直连,全程无需代理

3. 社交通道插件配置(重点卡点)

  1. 可选插件:微信、企业微信、飞书、QQ 机器人等

  2. 故障现象
    选择 Weixin 微信插件安装,抛出解析错误

proxyconnect tcp: dial tcp 192.168.108.1:7897 connect refused
  1. 报错根因
  • 宿主机科学上网 未开启,Docker 继承系统残留代理,无法访问境外插件源

  • 容器网关频繁重启,无法进入容器修改 npm 国内镜像源

  1. 最优处理方案
    初始化界面直接选择 Skip for now 暂时跳过

重要规则:插件支持后期任意时间追加安装,不影响主程序对话功能,优先保证大模型正常使用

4. 联网搜索功能配置

界面提供 DuckDuckGo 免费免密钥搜索、各类付费搜索接口
业务仅需纯 AI 对话,统一选择 Skip for now 跳过,关闭实时联网检索

5. 系统技能依赖配置

  1. 界面统计:可用技能 14 个、缺失依赖 37 个、系统不兼容 7 个

  2. 批量第三方密钥配置(谷歌地图、OpenAI 语音、AI 配音等)全部选 No 拒绝

  3. 无需安装多余依赖包,精简运行环境,减少报错与资源占用

6. 自动化钩子 Hooks 配置

功能作用:实现指令触发自动存档、日志记录、会话记忆等自动化动作
日常使用直接选择 Skip for now 全部关闭,简化运行逻辑

7. 智能助手启动方式

默认选中官方推荐:Hatch in Terminal 终端模式启动,直接回车确认完成全套初始化


三、镜像编译构建阶段详解

1. 构建必备条件

首次部署 / 镜像损坏重建:必须开启科学上网,满足境外基础镜像、项目依赖拉取编译需求

2. 编译正常状态判定

出现以下日志属于正常后台编译,非卡死、非报错

[tsdown-build] still running pid=28; no output for 30s

释义:项目 TS 代码静默编译打包,无日志输出属于常态,编译耗时 2-5 分钟不等,禁止 Ctrl+C 中断

3. 编译完成标志

出现镜像构建成功、容器启动日志即为结束

Successfully built 镜像ID
[+] Running 2/2
✔ Container openclaw-gateway  Started
✔ Container openclaw-cli      Started

4. 核心区分(重点)

  1. 编译构建阶段:需要外网 +科学上网 流量,拉取 node、bun 等境外基础镜像

  2. 日常运行阶段:零外网需求、零科学上网 需求,仅内网转发对接国内大模型接口

  3. 正常重启规则:仅首次 / 镜像损坏才会重新构建,日常虚拟机重启直接启动已有容器,不再重复编译


四、彻底解决代理残留报错方案

1. 问题现象

关闭科学上网 执行docker compose up \-d持续报代理端口连接拒绝,系统环境变量顽固残留代理

HTTP_PROXY=socks5://192.168.108.1:7897

2. 实操清理命令

# 清空当前会话代理变量
unset HTTP_PROXY HTTPS_PROXY ALL_PROXY http_proxy https_proxy all_proxy
# 删除docker代理配置文件
rm -rf /etc/systemd/system/docker.service.d/http-proxy.conf
rm -rf ~/.docker/config.json
# 重载系统配置
systemctl daemon-reload
systemctl restart docker

备注:部分系统全局配置写入深层文件无法一次性清除,无需强行清理,仅编译时临时开科学上网 适配即可


五、虚拟机重启全自动自启动配置(最终固化)

编译构建成功、服务正常运行后,执行以下命令实现断电重启自动拉起全套服务

# 设置Docker开机自启
systemctl enable docker
# 设置所有OpenClaw容器异常自动重启、开机自启
docker update --restart=always $(docker compose ps -q)

自启动生效逻辑

  1. VMware 虚拟机开机 → Docker 服务自动启动

  2. Docker 检测已配置自启容器 → 自动拉起 openclaw 网关与 CLI 服务

  3. 全程无需手动输入命令、无需开启科学上网、无需重新编译


六、日常运维常用命令

# 前台停止服务
docker compose down
# 后台静默启动服务
docker compose up -d
# 查看容器运行状态
docker compose ps
# 重新进入全套初始化配置界面
docker compose run --rm openclaw-cli onboard
# 获取网页访问管理地址
docker compose run --rm openclaw-cli dashboard --no-open

七、后期拓展预留方案

1. 后期追加安装微信插件

网络环境通畅时执行,无需重新配置大模型

docker compose down
docker compose run --rm openclaw-cli plugin install weixin
docker compose up -d

2. 会话记录防丢失优化

正常运行后,在钩子配置中开启 session\-memory 会话持久化功能,优雅停机保留聊天上下文

3. 磁盘空间优化

定期清理虚拟机冗余文件、Docker 无用镜像,避免再次磁盘爆满异常宕机,损坏容器数据


八、部署总结 避坑清单

  1. 部署优先级:优先打通国内大模型对话能力,社交拓展插件后置部署

  2. 网络使用原则:仅编译构建开科学上网,日常对话全程关闭科学上网

  3. 停机规范:尽量使用docker compose down优雅停机,杜绝强制断电丢会话数据

  4. 自启动核心:配置restart=always后,后续所有重启操作全自动运行,无任何人工干预

  5. 报错容错:初始化非必要功能全部跳过,最大限度精简环境,降低部署故障率

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐