docker部署openclaw+接入vllm模型(qwen-80b):少踩坑
前言
本文档用于规范“龙虾”系统在各环境(开发、测试、生产)中的部署流程与操作步骤,确保系统能够按照统一标准进行安装、配置与运行。
“龙虾”系统涉及多组件协同运行,部署过程中包含基础运行环境准备、依赖服务安装、配置文件调整、容器/进程启动以及运行状态检查等关键环节。为降低人为操作差异带来的风险,提高部署效率与可重复性,特编写本手册作为标准化执行依据。
本文档主要面向运维人员、开发人员及系统交付人员,适用于新环境初始化部署、版本升级部署及故障恢复场景。所有操作步骤均以可执行、可验证为原则编写,确保部署过程具备一致性与可追溯性。
在实际部署过程中,应结合具体环境资源配置(如 CPU、内存、存储及网络策略)进行适当调整,并严格遵循变更流程执行,避免对现网业务造成影响。
一、基础环境配置
1、自用配置
目前我是用一台服务器安装openclaw,vllm部署的离线qwen80b模型在另外一台A100服务器上
| 服务器版本 | ubuntu25.10 |
| docker版本 | 28.5.1 |
| docker compose版本 | 2.4.1 |

2、推荐硬件配置
为保证“龙虾”系统稳定运行,建议按照以下最低及推荐配置准备服务器资源:
1). 生产环境(推荐配置)
-
CPU:16 核及以上(建议 x86_64 架构)
-
内存:32 GB 及以上
-
存储:SSD 500 GB 及以上(根据数据量可扩展)
-
网络:千兆网卡及以上,稳定内网环境
-
操作系统:CentOS 7.9 / Ubuntu 20.04 LTS 及以上(推荐 LTS 版本)
2). 测试环境(最低可用)
-
CPU:8 核
-
内存:16 GB
-
存储:SSD 200 GB
-
网络:百兆或千兆均可
注:若涉及模型服务 / 大数据处理 / 多实例部署,建议按生产环境规格上浮 30%~50%。
3、推荐软件配置
1. Docker 版本要求
-
Docker Engine:20.10.0 及以上(推荐 24.x LTS 或更新稳定版)
2. Docker Compose 版本要求
版本要求:v2.0.0 及以上
(具体安装方法可以查看我之前docker以及compose安装的博客)
二、docker镜像准备
##下面是源镜像
docker pull ghcr.io/openclaw/openclaw:latest
##下面是国内镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/openclaw/openclaw:latest
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/openclaw/openclaw latest 3b898c03f210 2 weeks ago 3.02GB
三、准备 OpenClaw 配置目录
mkdir -pv /data/openclaw-docker
# 创建配置目录
mkdir -pv /data/openclaw-docker/.openclaw
# 创建工作空间目录
mkdir -pv /data/openclaw-docker/openclaw-workspace
# 确保目录权限正确
chown -R 1000:1000 /data/openclaw-docker/.openclaw
chown -R 1000:1000 /data/openclaw-docker/openclaw-workspace
chmod -R 755 /data/openclaw-docker/.openclaw
chmod -R 755 /data/openclaw-docker/openclaw-workspace

四、编写docker-compose 文件
生产环境建议用 docker-compose.yml 管理,比裸 docker run 更容易维护:
vim openclaw.yml
version: "3.8"
services:
openclaw-gateway:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/openclaw/openclaw
container_name: openclaw-gateway
restart: unless-stopped
ports:
- "18789:18789"
volumes:
- /data/openclaw-docker/.openclaw:/home/node/.openclaw
- /data/openclaw-docker/openclaw-workspace:/home/node/workspace
environment:
-NODE_ENV: production
user: "1000:1000"
healthcheck:
test: ["CMD","curl","-f","http://localhost:18789/healthz"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
deploy:
resources:
limits:
memory: 2G
cpus: "2.0"
reservations:
memory: 512M
cpus: "0.5"
logging:
driver: json-file
options:
max-size: "50m"
max-file: "5"
五、启动compose文件
docker compose -f openclaw.yml up -d

但是注意:现在你用远程机器去访问ip+18789端口是访问不到的
这边是有坑的 可以看到是容器内部的回环地址

哪怕容器是映射了port出来
解决办法:
打开openclaw.json文件
vim .openclaw/openclaw.json
#root@jxsj:/data/openclaw-docker# vim .openclaw/openclaw.json
#得看好目录位置

可以看到初始化json文件是这样的 我们加个bind
{
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"gateway": {
"bind": "lan", #通过局域网通信
"auth": {
"mode": "token",
"token": "1f69e7df8ab925f6ad563fa90c341ed6b7ee6374fe902771"
}
},
"meta": {
"lastTouchedVersion": "2026.3.2",
"lastTouchedAt": "2026-03-20T08:36:03.058Z"
}
}
~
然后保存退出
#重启openclaw服务
docker restart openclaw-gateway
#查看openclaw日志
docker logs -fn500 openclaw-gateway

这里能看到了0.0.0.0
现在可以通过远程机器 ip:18789端口访问openclaw web界面了

六、web 页面登录 继续解决坑点
目前页面提示
origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)

vim .openclaw/openclaw.json
{
"meta": {
"lastTouchedVersion": "2026.3.2",
"lastTouchedAt": "2026-03-20T08:51:26.996Z"
},
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard"
}
}
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"gateway": {
"bind": "lan",
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"http://127.0.0.1:18789",
"http://192.168.18.240:18789" #添加这个服务器ip 就是服务器本机ip
]
},
"auth": {
"mode": "token",
"token": "1f69e7df8ab925f6ad563fa90c341ed6b7ee6374fe902771" #复制这个token 接下来有用
}
}
}
然后保存退出
意思就是白名单策略
docker restart openclaw-gateway
现在刷新下页面就可以
刚刚复制的token 就在web页面打开概览 输入进去 然后连接刷新即可

2、https 坑点解决
继续看着报错解决 他也提示了https加密连接
mkdir -pv /data/openclaw-docker/.openclaw/certs/
# 生成私钥和证书,IP地址修改为服务器IP
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=192.168.18.240"
# 将证书移动到 openclaw 目录
mv key.pem cert.pem /data/openclaw-docekr/.openclaw/certs/
# 启用 HTTPS
docker exec -it openclaw-gateway bash
openclaw config set gateway.tls.enabled true
##openclaw config set gateway.tls.keyPath /data/openclaw-docker/.openclaw/certs/key.pem
##openclaw config set gateway.tls.certPath /data/openclaw-docker/.openclaw/certs/cert.pem
这里还有坑 这两个加密认证可以先不执行
# 重启网关openclaw gateway restart
秘钥对认证的坑我在看一下 后续更新

目前https可以访问
3、又出现白名单问题
这个时候继续
vim /data/openclaw-docker/.openclaw/openclaw.json
{
"meta": {
"lastTouchedVersion": "2026.3.2",
"lastTouchedAt": "2026-03-20T12:02:31.018Z"
},
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard"
}
}
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"gateway": {
"bind": "lan",
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"http://127.0.0.1:18789",
"http://192.168.18.240:18789",
"https://192.168.18.240:18789" ##这里加入https加密的白名单
]
},
"auth": {
"mode": "token",
"token": "1f69e7df8ab925f6ad563fa90c341ed6b7ee6374fe902771"
},
"tls": {
"enabled": true
}
}
}
4、pairing required问题解决

现在页面上出现一个配对批准的英文单词
我们可以打开概览 查看右侧 教程

docker exec -it openclaw-gateway bash
#进入容器


openclaw devices list
openclaw devices approve 31115c66-7b92-4f84-bb8b-4c5560c02661
#openclaw devices approve id 即可
现在再访问页面 就不会出现配对批准情况 状态也变成了正常

七、接入vLLM本地大模型

模型我是已经启动着的,大家有条件是可以接入在线模型,离线模型感觉还是不容易升级 有点笨
vllm 启动需要加 --enable-auto-tool-choice \
--tool-call-parser hermes
这两个参数 不然会有报错问题
1、接着我们继续配置api
还是在容器内运行命令
openclaw onboard

这个就是在提示
当前系统默认是“个人使用模式”
如果你要在多人 / 公网 / 内网共享环境使用,必须做好安全加固
是否继续?
我们这里选择yes即可

选择初始化方式:
-
QuickStart:快速启动(先跑起来,后面再改配置)后续可以用
openclaw configure修改 -
Manual:手动模式(一步一步自己配置所有参数)
我们这里选择快速启动即可

配置处理方式:
-
Use existing values:继续使用现有配置
-
Update values:更新配置(保留旧的,改一部分)
-
Reset:全部重置,重新生成
直接回车,用我们现有配置即可

这里就是选择api配置了
我们这里vLLM启动的 直接选择vllm即可

url 输入你模型调用的url

可以curl测试一下
接着vLLM api key 这边随便输就可以 可以选择abc123
vLLM model 就输入模型名字即可 curl可以看到id 根据自己实际请求来
然后继续回车

我这边暂不配置 就选择Skip for now

这样结束了

web界面在代理这边是可以看到的

先实行对话 后续接入飞书可以在频道里面配置
后续我会持续更新的
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)