当前位置:首页>Linux>从零到一:在 Linux 虚拟机中通过 Docker 部署 OpenClaw,并打造本地专属 AI Agent 平台

从零到一:在 Linux 虚拟机中通过 Docker 部署 OpenClaw,并打造本地专属 AI Agent 平台

  • 2026-09-09 17:16:58
从零到一:在 Linux 虚拟机中通过 Docker 部署 OpenClaw,并打造本地专属 AI Agent 平台
一、前置条件
1、Windows安装Vmware虚拟机,安装Centos 7
2、虚拟机调试好网络
3、虚拟机安装好Docker环境
二、OpenClaw部署
1、Docker容器启动OpenClaw
docker run -d \  --name openclaw \  --restart always \  -p 18789:18789 \  -v /root/.openclaw:/home/node/.openclaw \  -e HOST=0.0.0.0 \  -e OPENCLAW_GATEWAY_BIND=lan \  -e NODE_ENV=production \  1panel/openclaw gateway --allow-unconfigured
2、网关令牌设置与 SSH 隧道加密访问
为了安全,我们不建议直接在防火墙上把虚拟机的 18789 端口暴露给局域网。我们采用更优雅的 SSH 本地端口转发。
ssh -L 18789:127.0.0.1:18789 root@192.168.2.129
浏览器输入http://127.0.0.1:18789 即可访问 OpenClaw 面板。
3、配置网关Token
cat /root/.openclaw/openclaw.json
填入 OpenClaw 页面:
4、确保OpenClaw状态健康,才算部署完成
三、对接阿里千问
1、创建API KEY
解释:

默认业务空间下的API Key.可调用所有标准模型,以及默认业务空间内的应用。

简单说:就是不需要创建模型,创建完APIKEY就可以直接使用,在下面的脚本里面执行模型名称即可。

模型名称的获取:
2、编辑 /root/.openclaw/openclaw.json,添加 models 和默认 agents 配置
(venv_linux) [root@bigdata001 .openclaw]# cat openclaw.json{  "commands": {    "ownerDisplay": "raw",    "nativeSkills": "auto",    "restart": true,    "native": "auto"  },  "meta": {    "lastTouchedAt": "2026-03-03T11:20:25.645Z",    "lastTouchedVersion": "2026.3.2"  },  "models": {    "providers": {      "dashscope": {        "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",        "apiKey": "上一步获取的API KEY",        "api": "openai-completions",        "models": [          {            "id": "qwen-max",            "name": "Qwen Max"          },          {            "id": "qwen-plus",            "name": "Qwen Plus"          },          {            "id": "qwen-turbo",            "name": "Qwen Turbo"          }        ]      }    }  },  "agents": {    "defaults": {      "compaction": {        "mode": "safeguard"      },      "model": {        "primary": "dashscope/qwen-plus"      }    }  },  "gateway": {    "controlUi": {      "allowedOrigins": [        "http://192.168.2.129:18789",        "http://127.0.0.1:18789"      ]    },    "bind": "lan",    "auth": {      "token": "1ebfcc44e37cdacba3f760260ab0065aa249a83c9c6134bd",      "mode": "token"    }  }}(venv_linux) [root@bigdata001 .openclaw]#
这一行指定了当前使用的模型:
"primary": "dashscope/qwen-plus"
3、重启openclaw
docker restart openclaw
4、页面使用
四、Skill的安装和使用
1、进入技能目录并创建文件夹:
mkdir -p /root/.openclaw/workspace/skills/ashare-quantcd /root/.openclaw/workspace/skills/ashare-quantchown -R 1000:1000 /root/.openclaw/workspace/skills/ashare-quant
2、创建技能配置文件SKILL.md
cat << 'EOF' > SKILL.md---name: ashare_quantdescription: A-Share Quantitative Analysis Tool. 允许 AI 直接执行只读 SQL 查询本地 A股数据库 (quant_data),获取行情与基本面数据进行量化分析。---# A-Share Quantitative Analysis Tool你可以使用这个技能来执行本地 MySQL 8.0 数据库的查询。数据库名称为 `quant_data`,主要包含以下核心表:1. `market_daily_index` (大盘指数数据)2. `stock_daily_full` (个股日线全量数据)## 工具参数当你需要调用底层 `index.js` 时,请向其传递以下参数:- `sql_query` (string): 需要在 MySQL 中执行的合法 SELECT 语句。注意:为保护数据安全,仅允许执行 SELECT 操作。如果返回结果过多,请在 SQL 中使用 LIMIT 限制条数。EOF
3、创建技能执行逻辑 (index.js):
cat << 'EOF' > index.jsconst mysql = require('mysql2/promise');async function run({ sql_query }) {  // 安全拦截:禁止执行修改或删除操作  if (!sql_query.trim().toUpperCase().startsWith('SELECT')) {    return JSON.stringify({ error: "安全限制:此技能仅支持 SELECT 查询以保护数据安全。" });  }  let connection;  try {    // 这里使用你宿主机的网关 IP 172.17.0.1 或者容器名 mysql-single    connection = await mysql.createConnection({      host: '172.17.0.1',       user: 'root',      password: 'XXXXXX',      database: 'quant_data',      port: 3306    });    const [rows] = await connection.execute(sql_query);    // 如果结果太多,截断以防止撑爆 LLM 的上下文窗口    if (rows.length > 100) {        return JSON.stringify({             warning: `查询结果过多 (${rows.length} 条),仅返回前 100 条供分析。`,             data: rows.slice(0, 100)         });    }    return JSON.stringify({ data: rows });  } catch (error) {    return JSON.stringify({ error: `数据库查询失败: ${error.message}` });  } finally {    if (connection) await connection.end();  }}module.exports = { run };EOF
4、安装数据库驱动
docker exec -it openclaw npm install mysql2 --prefix /home/node/.openclaw/workspace/skills/ashare-quant
5、重启OpenClaw
docker restart openclaw
6、页面确认技能
7、技能的调用
在会话框输入:
请使用你的 ashare_quant 技能,帮我查询 quant_data 数据库。任务:去查一下 market_daily_index 表,按 trade_date 降序排列,只取最新的 5 个交易日的数据。请先构造并执行 SQL,然后告诉我:这 5 天里,哪一天的大盘收盘价(close)最高?哪一天的成交量(vol)最大?

最新文章

随机文章