Skip to main content

准备Ubuntu镜像

使用docker volume实现对关键数据的持久化,特别是平时OpenClaw会用到的一些工具:

docker volume create ubuntu-etc
docker volume create ubuntu-home
docker volume create ubuntu-opt
docker volume create ubuntu-root
docker volume create ubuntu-usr
docker volume create ubuntu-var

如果需要删除持久卷则使用以下指令:

docker volume rm ubuntu-data ubuntu-etc ubuntu-home ubuntu-opt ubuntu-root ubuntu-usr ubuntu-var

使用以下指令将关键的内容拷贝到空的持久卷中,便于后续使用持久卷保存指定目录的文件内容:

docker run --name ubuntu-init \
--rm -it \
-v ubuntu-etc:/tmp/etc \
-v ubuntu-home:/tmp/home \
-v ubuntu-opt:/tmp/opt \
-v ubuntu-root:/tmp/root \
-v ubuntu-usr:/tmp/usr \
-v ubuntu-var:/tmp/var \
ubuntu:24.04 \
bash -c "cp -r /etc/* /tmp/etc/ && \
cp -r /home/* /tmp/home/ && \
cp -r /root/* /tmp/root/ && \
cp -r /usr/* /tmp/usr/ && \
cp -r /var/* /tmp/var/"

安装OpenClaw

使用以下指令启动Ubuntu容器,可以看到关键的目录已经使用持久卷挂载了,每次进入都不会丢失数据:

docker run --name ubuntu-server \
--rm -it \
-p 18789:18789 \
-v ubuntu-etc:/etc \
-v ubuntu-home:/home \
-v ubuntu-opt:/opt \
-v ubuntu-root:/root \
-v ubuntu-usr:/usr \
-v ubuntu-var:/var \
ubuntu:24.04 \
bash

参考官方文档一步一步安装即可,由于这里使用到的Ubuntu镜像是一个精简镜像,中间会涉及安装一些依赖:https://docs.openclaw.ai/install

OpenClaw配置初始化

安装指令执行后除了安装各种依赖和openclaw工具,还会自动执行openclaw onboard指令进行配置的初始化。

安装完成后会生成一系列配置文件在/root/.openclaw/目录下。

OpenClaw配置初始化

其中终端提示的Control UI的地址如http://127.0.0.1:18789/#token=7bda7b7682552bec66417be05372f2a8878c529e8420546e是后面登录管理后台的地址,其中的token是随机生成的。咱们先保存这个地址。

修改配置openclaw.json配置

其中的openclaw.json文件是OpenClaw的关键配置文件,配置文件中的gateway配置项默认只会监听本地127.0.0.1地址,导致宿主机访问不了OpenClaw,因此需要修改如下:

/root/.openclaw/openclaw.json
  "gateway": {
"port": 18789,
"mode": "local",
"bind": "lan", // 这里从loopback修改为lan,表示监听所有地址
"controlUi": {
"allowInsecureAuth": true
},
// ...
},

启动OpenClaw gateway

通过openclaw gateway run指令启动OpenClawgateway服务。

OpenClaw:启动OpenClaw gateway

访问OpenClaw

宿主机浏览器打开前面保存的管理页面的地址http://127.0.0.1:18789/#token=7bda7b7682552bec66417be05372f2a8878c529e8420546e,大概是这样:

访问OpenClaw

会报错pairing required,这是因为我们是使用的容器启动的OpenClaw,不是本机直接使用OpenClaw。我们需要让OpenClaw允许当前宿主机浏览器打开管理后台页面。

我们执行以下命令进入到容器:

docker exec -it ubuntu-server bash

查询当前Pending的秘钥配对请求:

cd /root/.nvm/versions/node/v24.14.1/lib/node_modules/openclaw/
node dist/index.js devices list

终端输出: OpenClaw:查询当前Pending的秘钥配对请求

执行以下指令允许秘钥配对:

node dist/index.js devices approve acc580cb-e50b-4f1e-a3bb-68cbe9e1dcbf

OpenClaw:执行以下指令允许秘钥配对

随后再次返回宿主机浏览器时,可以看到OpenClaw的管理页面已经可以正常访问了:

访问OpenClaw

常见配置

修改对接的模型配置

通常可以通过openclaw config指令或者直接修改openclaw.json配置文件实现。

我们这里直接修改/root/.openclaw/openclaw.json,增加或修改以下配置,我这里增加的是公司通过NewAPI自建的模型服务:

/root/.openclaw/openclaw.json
  "models": {
"mode": "merge",
"providers": {
"msxf": {
"baseUrl": "https://coremind.msxf.com/v1",
"apiKey": "sk-iIeHbU5aPVXA3qT8lJAcSgeVwP51WZVYGyHHkYApF7pcQvFQ",
"api": "openai-completions",
"models": [
{"id":"Kimi-K2.5", "name": "Kimi-K2.5"},
{"id":"GLM-5", "name": "GLM-5"},
{"id":"MiniMax-M2.7", "name": "MiniMax-M2.7"}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "msxf/MiniMax-M2.7"
},
"models": {
"msxf/MiniMax-M2.7": {},
"msxf/GLM-5": {},
"msxf/Kimi-K2.5": {}
},
"workspace": "/root/.openclaw/workspace"
}
},

保存后,OpenClawgateway会自动重加载配置无须手动重启gateway(如果不放心也可以手动重启openclaw gateway restart)。随后在OpenClaw聊天页面通过/status命令检查是否生效:

OpenClaw:修改对接的模型配置