☰
VMware+CentOS 7+Docker+1Panel 本地部署 OpenClaw 全过程与排坑指南
2026/10/3 3:48:29 网站建设 项目流程

OpenClaw 这套东西,圈子里有人叫它“龙虾”——open 加上 claw,读起来跟 lobster 沾边,反正是个代号。我前阵子在一台只有 16G 内存的 Windows 电脑上,用 VMware Workstation Pro 17 起了一台 CentOS 7 虚拟机,然后在里面从零搭起 Docker、1Panel,最后把 OpenClaw 跑了起来,还接上了 qwen2.5-3b 本地模型和 Obsidian 知识库。整个过程两天,踩了不少坑,这篇文章就是把这两天的完整流程和排错思路写下来。

先说结论:这套“VMware + CentOS 7 + Docker + 1Panel + OpenClaw”的组合完全能跑通,而且很适合没有独立服务器、只想拿现有电脑做实验的人。OpenClaw 是一个开源的个人 AI 智能体框架,负责把大模型、知识库、工具调用串成一条流水线;VMware 负责提供一个干净的 Linux 环境;Docker 负责标准化部署;1Panel 让你不用天天敲命令行就能管理这些服务。下面我会按实际部署顺序,把每个环节的关键操作和坑都讲清楚。

1. 先把技术栈讲清楚:为什么是“虚拟机 + CentOS 7 + Docker + 1Panel”

1.1 OpenClaw 到底是个什么东西

OpenClaw 本质上是一个把大模型能力编排成智能体的开源框架。它的核心职责有三块:接住你的问题、调用背后的大模型生成内容、再根据上下文去执行检索或工具调用。最吸引人的一点是它不绑定具体模型,只要模型服务提供 OpenAI 兼容的 API 接口,它就能对接。所以网上出现了大量“OpenClaw + qwen2.5-3b”的组合玩法:本地跑一个通义千问的小模型,OpenClaw 负责调度,既省钱,数据也能留在这台机器上。

另一个常见玩法是接 Obsidian。把本地笔记库的目录挂载给 OpenClaw,它就变成了一个“读过你所有笔记的助手”。问它“我上周写的那份方案在哪个文件里”,它能从一堆 Markdown 里检索出来给你答案。这个用法对做个人知识管理的人来说非常实用。

1.2 为什么非要在虚拟机里跑

很多人第一反应是:Windows 上有 Docker Desktop,直接装不行吗?能装,但真的很别扭。Docker Desktop 在 Windows 上依赖 WSL2 或 Hyper-V,网络模式、路径映射、端口转发的坑一个接一个。我见过不少人在 PowerShell 里跑 Docker 命令时被提示检查 WSL 环境,结果折腾半天连 MySQL 都起不来,问题根源只是 Docker Desktop 的虚拟化后端跟系统里的其他虚拟机软件打架。

虚拟机方案的核心优势是隔离。CentOS 7 是一个纯净的 Linux 环境,OpenClaw 依赖的 Docker、1Panel、MySQL、Redis 全都在同一个生态里,路径、权限、网络环境都符合 Linux 服务器的习惯。更关键的是 VMware 的快照功能:配置搞挂了,几分钟就能回到之前能用的状态,比手动卸载重装舒服太多了。

1.3 CentOS 7 已经停止维护了,为什么还选它

CentOS 7 在 2024 年年中停止了官方维护,但在这个场景里它反而是最合适的选择。原因有三点:第一,镜像资源多。阿里云、清华、网易的镜像站都保留了 CentOS 7 的完整安装包,下载速度快,不用到处找资源。第二,生态成熟。市面上的 Docker、1Panel 部署教程大多基于 CentOS 系列,照着做不容易出现版本断层。第三,EOL 对一台隔离的虚拟机来说影响很小,不开放公网端口、只在内网跑,安全风险基本可控。如果实在介意,后续也可以换 Debian 12,不过下面的命令和路径会有些出入。

1.4 1Panel 在整个环境里的位置

Docker 是运行时,1Panel 是管理面板。为什么中间要加这一层?因为 OpenClaw 跑起来之后,你大概率还需要 MySQL、Redis、Nginx 这些配套服务。如果全靠命令行,光是记一堆 docker run 的参数就够烦了。1Panel 把这些服务做成了“应用商店”,点几下就能装好一个带数据持久化的 MySQL,还能在浏览器里看容器的实时日志、资源占用,管理防火墙端口。对于不想天天 ssh 敲命令的人来说,这是从“能用”到“好用”的关键一步。

2. 环境准备:VMware Workstation Pro 17 和 CentOS 7 镜像下载

2.1 VMware 下载与安装的注意事项

VMware Workstation Pro 从 2024 年开始对个人用户免费。去官网注册账号,下载 Workstation Pro 17 的安装包,安装时一路下一步就行。这里有两个容易忽略的点。

一个是确认 BIOS 里已经开启 CPU 虚拟化。Intel 平台是 VT-x,AMD 平台是 SVM,一般在 BIOS 的 Advanced 或 Processor 选项里能找到。没开的话,新建虚拟机时 VMware 会直接提示“此主机不支持虚拟化技术”。

另一个是安装路径别带中文。带中文路径在后续挂载共享目录、导入导出虚拟机文件时偶尔会出奇怪问题,能避就避。

2.2 CentOS 7 镜像去哪下载

直接给结论:访问阿里云镜像站的 CentOS 7 目录,下载CentOS-7-x86_64-Minimal-2009.iso这个文件。Minimal 版不带图形界面,体积只有几百 MB,装完干净,适合做服务器。文件名里的 2009 是 2020 年 9 月的版本标识,这是 CentOS 7 最后几个版本之一,放心用。

2.3 新建虚拟机的推荐参数

打开 VMware,新建虚拟机,选择“自定义”。关键参数可以参照这张表:

配置项推荐值说明
兼容性Workstation 17.x保持默认即可
安装来源稍后安装操作系统先不挂 ISO,后面单独设置
操作系统Linux / CentOS 7 64位选错了驱动和兼容性会有问题
CPU2 核宿主机器够好可以给 4 核
内存4096 MB 起步跑 OpenClaw 加本地小模型建议 8G
磁盘40 GB太小了 Docker 镜像和模型文件不够放
网络NAT默认就是 NAT,先别改成桥接

磁盘建议选“将虚拟磁盘存储为单个文件”,后续做快照和迁移都方便。内存这里多说一句:如果打算在虚拟机里直接跑 qwen2.5-3b 这种本地模型,4G 内存会非常紧张。3B 模型量化后大约需要 2 到 3G 内存,加上 OpenClaw 和 Docker 本身的开销,我建议直接分配 8G,宿主机内存 16G 以上才比较从容。

2.4 CentOS 7 安装过程中的三个选择

虚拟机建好后,在 CD/DVD 设置里挂载下载好的 ISO,打开电源。安装界面起来后,语言选中文或英文都行,重点在于三个选择。

第一个,安装位置直接用默认磁盘。新手手动分区很容易把 /boot 和 / 分错,默认的全盘分配最省事。第二个,软件选择一定要选“最小安装”,不要选带 GNOME 桌面的版本,纯命令行服务器能省掉几百 MB 内存。第三个,在“网络和主机名”界面里把以太网开关打开,这一步很多人漏掉,装完系统后没有网卡配置,才导致后面 ping 不通百度。顺手把主机名设成 openclaw-server 之类的名字,方便识别。

root 密码设置好,等它装完重启,拔掉安装介质,就来到 CentOS 7 的命令行界面了。

3. 装机后的第一波排坑:联网与 yum 源

3.1 ping 不通百度的排查链路

如果你和我一样,安装时漏开了网络开关,进系统后第一件事就是测网络:

ip addr

看有没有 ens33 之类的网卡,以及网卡下面有没有 inet 地址。如果网卡存在但没有任何 IP,说明没获取到地址。接着 ping 一下网关:

ping -c 4 192.168.x.1

先能通网关,再看外网。CentOS 7 的网卡配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33,文件名里的 ens33 要跟ip addr看到的网卡名一致。打开文件,通常会看到ONBOOT=no,把它改成ONBOOT=yes,重启网络服务:

systemctl restart network

如果还是不通,去 VMware 的“虚拟网络编辑器”里确认 VMnet8(NAT 模式)没有被禁用。排查顺序很重要:先看网卡有没有地址,再看能不能通网关,最后才查外网。跳过中间步骤直接去改 DNS,经常会白忙一场。

3.2 给 CentOS 7 配一个静态 IP

DHCP 拿到的 IP 不固定,重启虚拟机后可能变地址,这对后面访问 1Panel 和 OpenClaw 很麻烦。建议一开始就配成静态。编辑网卡配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

改成下面这种形态:

TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.x.188 NETMASK=255.255.255.0 GATEWAY=192.168.x.2 DNS1=223.5.5.5 DNS2=114.114.114.114

这里有个容易迷糊的地方:网关192.168.x.2是怎么来的?VMware 的 NAT 模式默认用 VMnet8 网卡,网关固定是网段的 .2。比如虚拟网络编辑器里 VMnet8 的子网是 192.168.80.0,那网关就是 192.168.80.2。IPADDR 填同一个网段内不冲突的地址就行。DNS 用阿里和 114DNS,比运营商默认的稳定。改完执行:

systemctl restart network

再ping -c 4 www.baidu.com,通了网络这块就彻底搞定了。

3.3 更换 yum 源:不然装什么都超时

CentOS 7 默认 yum 源指向官方服务器,在国内环境下访问速度很玄学。直接换成阿里云的镜像源,一条命令的事:

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all && yum makecache

如果 wget 没装,先yum install -y wget。这个 repo 文件已经把 base、updates、extras 都指到阿里云镜像路径,换完缓存生成会快很多。顺手把基础工具装上:

yum install -y wget vim net-tools curl

net-tools 提供 ifconfig 命令,虽然ip addr更现代,但很多教程仍用 ifconfig,装上不亏。

3.4 关闭 SELinux 和防火墙

OpenClaw 部署过程中要挂载目录、改权限、起容器,SELinux 经常会出来拦路。对一台隔离虚拟机来说,关闭它是风险最小的选择。先执行setenforce 0临时关闭,再修改/etc/selinux/config,把SELINUX=enforcing改成SELINUX=permissive,重启后永久生效。

防火墙也一样。CentOS 7 默认开 firewalld,1Panel 安装时能自动处理端口,但为了省去后续各种端口访问的怪问题,我在部署阶段直接关掉:

systemctl stop firewalld systemctl disable firewalld

说明一下设计思路:这台虚拟机在 VMware NAT 网络里,对外不暴露端口,关闭没有安全风险。如果你的场景是云服务器或需要对外提供服务,那就别关防火墙,而是在 firewalld 里放行 8080 和面板端口。

4. Docker 安装与国内镜像加速:给 OpenClaw 准备容器运行时

4.1 为什么不用系统自带的 Docker

CentOS 7 自带 yum 源里有个老版本 Docker,版本大概在 1.13 左右。装是能装,但 Docker Compose 兼容性和镜像拉取都有问题,OpenClaw 这种新项目大概率跑不顺。我们要装的是 Docker 官方源的 docker-ce,版本新,社区验证也充分。

安装前先把可能存在的旧版本清理干净:

yum remove docker docker-client docker-common docker-engine -y

没装过的话会提示无匹配包,不影响后续操作。

4.2 docker-ce 安装的一条龙命令

在 CentOS 7 上装 docker-ce 的标准流程分三步。第一步装依赖工具:

yum install -y yum-utils

第二步添加 Docker 官方 repo:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

第三步安装并启动:

yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin systemctl start docker systemctl enable docker

装完验证:

docker version docker info

docker version里能看到 Client 和 Server 两部分,Server 有输出才说明 Docker 守护进程正常。这一步相当于 OpenClaw 部署的前置探针,Docker 没起来后面全是白搭。

4.3 配置国内镜像加速器

Docker 装好后先别急着拉镜像,把加速器配了。国内网络环境下,从 Docker Hub 直接拉镜像经常超时,尤其是 OpenClaw 相关镜像动辄几百 MB,很容易拉到一半卡住。

编辑/etc/docker/daemon.json,没有就新建:

mkdir -p /etc/docker vi /etc/docker/daemon.json

写入:

{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.mirrors.sjtug.sjtu.edu.cn" ] }

改完重启 Docker:

systemctl daemon-reload systemctl restart docker

镜像加速器列表网上有很多,选两三个稳定的填进去就行。这里提醒一句:加速器解决的是“拉取慢”,不是“连不上”。如果 pull 直接报 timeout,先 ping 一下镜像域名判断是不是网络问题,再决定要不要换加速器。

4.4 Docker Compose:用一个 yaml 文件管起 OpenClaw

OpenClaw 的部署通常提供 Docker Compose 的方式,所有服务可以在一个 yaml 文件里定义,启动、停止、日志都统一管理。我在上一步的安装命令里已经带了 docker-compose-plugin 插件,验证一下:

docker compose version

注意新版命令是docker compose,中间有空格,不是老式的docker-compose。网上很多旧教程还在用横线版本,在 CentOS 7 加新版 docker-ce 环境下照抄会报 command not found,这个细节挺坑的。

5. 1Panel 面板:用浏览器管理 OpenClaw 的运行环境

5.1 一条命令安装 1Panel

1Panel 是一个开源 Linux 服务器运维面板,定位跟宝塔有点接近,但界面更现代,对 Docker 的支持做得非常出色。官方给了一条快速安装命令:

curl -sSL https://resource.1panel.hk/quick_start.sh -o quick_start.sh sudo bash quick_start.sh

具体命令和下载地址以 1Panel 官网最新版本为准。执行后脚本会自动检测系统、安装依赖、拉取镜像,整个过程几分钟。装完屏幕会输出三样东西:面板访问地址、默认用户名、随机生成的密码。这三样最好先复制到记事本。

这里有个容易忽略的点:1Panel 默认监听一个随机端口,可能是 26080 之类的,不是常见的 8080。访问不了时先确认是不是这个端口的问题,别在 nginx 上死磕。

5.2 首次登录与安全设置

浏览器打开面板地址,输入用户名密码进入。第一次登录后,不要急着装应用,先把默认密码改掉、面板端口改掉,再创建只读访客账号(如果只是偶尔看看资源占用的话)。

1Panel 左侧有仪表盘、网站、数据库、容器、应用商店等模块。仪表盘能看到 CPU、内存、磁盘、网络的实时曲线,部署 OpenClaw 时监控资源消耗很方便。容器模块可以看 Docker 容器的状态、日志,甚至直接进终端,功能不比命令行差。在虚拟机里用的话,面板端口保持默认就行;如果以后把机器暴露到局域网,记得在防火墙只放行指定端口。

5.3 用应用商店装 MySQL 和 Redis

OpenClaw 这类智能体应用通常会用到数据库和缓存。1Panel 的应用商店把 MySQL、Redis、PostgreSQL、Nginx 这些服务打包成“一键安装”入口,选版本、设密码、选数据目录,剩下的面板自动完成,包括创建容器、挂载目录、配置数据持久化。

建议先装 MySQL 和 Redis。MySQL 用来存 OpenClaw 的会话记录、用户信息这类结构化数据;Redis 用作缓存,模型回答耗时较长时,热点数据能快不少。安装时端口保持默认,账号密码记好,后面 OpenClaw 的配置里要填。有一点必须注意:1Panel 装这些服务时会默认创建数据目录,一般放在/opt/1panel下面,备份时这个目录要一并备份,不然容器还在、数据丢了等于白搭。

5.4 面板日志与 Docker 的统一管理

1Panel 最吸引我的是日志查看体验。之前排查 OpenClaw 启动失败,需要在命令行里不停docker compose logs -f盯着,眼睛都快花了。在 1Panel 里进入容器模块,选中 openclaw 容器,点“日志”,就能在浏览器里实时滚动日志,还能按关键词搜索。

另外 1Panel 的文件管理功能也实用。OpenClaw 的配置文件和知识库目录可以直接在面板里编辑,不用每次 ssh 上去用 vim。对新手来说,可视化的文件树比命令行友好太多。

6. OpenClaw 部署实操:龙虾正式出笼

6.1 部署目录与 .env 环境变量

环境通了,下面进入正题。OpenClaw 的具体部署以官方文档为准,我这里用的是社区里最通行的 Docker Compose 方式。

先在服务器上准备一个工作目录:

mkdir -p /opt/openclaw && cd /opt/openclaw

OpenClaw 需要一些环境变量,通常放在同目录下的.env文件里,比较常见的几个配置项是:

OPENCLAW_PORT=8080 DATA_DIR=/opt/openclaw/data MODEL_PROVIDER=openai-compatible QWEN_API_BASE=http://192.168.x.188:11434/v1 QWEN_API_KEY=ollama QWEN_MODEL=qwen2.5:3b

解释一下这几行:OPENCLAW_PORT 是外部访问端口,等会浏览器输入http://虚拟机IP:8080就能进 OpenClaw 的对话界面。QWEN 开头的配置代表把 qwen2.5-3b 作为后端模型,API 地址指向本地 Ollama 服务。QWEN_API_KEY 随便填一个,因为本地 Ollama 默认不做鉴权。如果改用云端模型服务,这里就填服务商给的 key。

6.2 用 Qwen2.5-3b 当后端:先起一个 Ollama

在配置 OpenClaw 之前,我建议先把 Ollama 单独跑起来。qwen2.5-3b 是一个 30 亿参数的小模型,量化后资源占用很可控,非常适合 8G 内存的虚拟机。

用 Docker 起 Ollama:

docker run -d --name ollama -p 11434:11434 -v /opt/ollama:/root/.ollama ollama/ollama docker exec ollama ollama pull qwen2.5:3b

第一条命令把容器跑起来,模型存储目录挂到宿主机。第二条命令进容器内部拉取模型。3B 模型的参数文件有好几个 G,拉取时间看网络情况,耐心等。

拉完测一下 API 是否可用:

curl http://192.168.x.188:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"qwen2.5:3b","messages":[{"role":"user","content":"你好"}]}'

返回带 choices 的 JSON,说明 Ollama 起来了,OpenClaw 的模型通道就通了。

6.3 编写 docker-compose.yml 与启动 OpenClaw

接下来创建docker-compose.yml:

services: openclaw: image: openclaw/openclaw:latest container_name: openclaw ports: - "8080:8080" volumes: - ./data:/app/data - /path/to/obsidian_vault:/app/knowledge env_file: - .env restart: unless-stopped

镜像名和环境变量最终以官方文档为准,这里展示的是典型形态:容器 8080 端口映射到宿主机 8080;数据目录挂载出来,防止容器重建后数据丢失;Obsidian 库在下一节单独说。

启动命令:

docker compose up -d docker compose logs -f

第一次启动会拉镜像,耐心等。看到日志里出现类似“服务已启动”的提示后,浏览器访问:

http://192.168.x.188:8080

能出现对话界面,说明 OpenClaw 本体部署成功。如果页面打不开,去 1Panel 的容器日志里优先排查端口冲突和卷挂载失败。

6.4 把 Obsidian 知识库接进来

OpenClaw 很实用的玩法是接入 Obsidian。原理很简单:把 Obsidian 的 vault 目录,也就是存放 Markdown 笔记的文件夹,挂载进容器,OpenClaw 就能在回答问题时检索这些笔记内容。

在docker-compose.yml里添加一行卷映射:

volumes: - /home/username/Documents/MyVault:/app/knowledge

前提是虚拟机里能访问到这个目录。通常我会把 Windows 宿主机上的 vault 文件夹共享出来,然后在 CentOS 7 里挂载到/mnt/obsidian,再把/mnt/obsidian映射进容器。

映射好之后,在 OpenClaw 的配置里把 knowledge 目录指向/app/knowledge,它就会在回答时带上你的笔记内容。实测下来,对“我当时在笔记里写过什么结论”这类问题,回答质量明显比裸问模型好,因为上下文来自你自己的文字记录。

6.5 部署完的日常维护建议

龙虾出笼之后,日常维护其实就几件事。

第一,定期打快照。VMware 里右键虚拟机,选择“快照 - 拍摄快照”。每次改配置之前先拍一个,回滚只要几分钟。这是我这次部署中最后悔没早点用上的功能。

第二,做好备份。1Panel 本身有备份能力,可以把 OpenClaw 的配置目录、MySQL 数据、Ollama 模型目录打包。至少备份配置目录和数据库,模型文件过大可以重新拉取。

第三,升级要谨慎。docker compose pull拉新版本前,先看官方 changelog,智能体项目迭代快,新镜像未必兼容旧配置。放心做法是升级前拍快照,升级后看日志,有问题立刻回滚。

最后补充一个内存建议:OpenClaw 加 Ollama 3B 模型,4G 内存会非常紧张,容易出现 OOM。如果虚拟机只分了 4G,建议别在同一台机器里跑本地模型,改成调用云端 API,或者把内存加到 8G 以上。动手前先看 1Panel 仪表盘的内存趋势,比凭感觉判断靠谱。


最后说点个人感受。整套环境从零搭到 OpenClaw 能对话、能读 Obsidian 笔记,我实际花了两天。最难的不是某条命令,而是“不知道该信哪篇教程”——网上关于 OpenClaw 的文章不少,但每个版本的配置都不一样。我的建议是:先认准官方文档的部署方式,然后把 VMware、CentOS 7、Docker、1Panel 这四层地基打扎实,OpenClaw 本身反而很快就起来了。要论这次最值的一条经验,就是快照:大胆折腾,随时回滚,部署 AI 服务这件事,其实跟在沙滩上堆城堡差不多,有铲子、有模具、有退路,剩下的就是玩。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询