准备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/目录下。

其中终端提示的Control UI的地址如http://127.0.0.1:18789/#token=7bda7b7682552bec66417be05372f2a8878c529e8420546e是后面登录管理后台的地址,其中的token是随机生成的。咱们先保存这个地址。
修改配置openclaw.json配置
其中的openclaw.json文件是OpenClaw的关键配置文件,配置文件中的gateway配置项默认只会监听本地127.0.0.1地址,导致宿主机访问不了OpenClaw,因此需要修改如下:
"gateway": {
"port": 18789,
"mode": "local",
"bind": "lan", // 这里从loopback修改为lan,表示监听所有地址
"controlUi": {
"allowInsecureAuth": true
},
// ...
},
启动OpenClaw gateway
通过openclaw gateway run指令启动OpenClaw的gateway服务。

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

会报错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
终端输出:

执行以下指令允许秘钥配对:
node dist/index.js devices approve acc580cb-e50b-4f1e-a3bb-68cbe9e1dcbf

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

常见配置
修改对接的模型配置
通常可以通过openclaw config指令或者直接修改openclaw.json配置文件实现。
我们这里直接修改/root/.openclaw/openclaw.json,增加或修改以下配置,我这里增加的是公司通过NewAPI自建的模型服务:
"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"
}
},
保存后,OpenClaw的gateway会自动重加载配置无须手动重启gateway(如果不放心也可以手动重启openclaw gateway restart)。随后在OpenClaw聊天页面通过/status命令检查是否生效:
