
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-xAMD 平台是 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看到的网卡名一致。打开文件通常会看到ONBOOTno把它改成ONBOOTyes重启网络服务systemctl restart network如果还是不通去 VMware 的“虚拟网络编辑器”里确认 VMnet8NAT 模式没有被禁用。排查顺序很重要先看网卡有没有地址再看能不能通网关最后才查外网。跳过中间步骤直接去改 DNS经常会白忙一场。3.2 给 CentOS 7 配一个静态 IPDHCP 拿到的 IP 不固定重启虚拟机后可能变地址这对后面访问 1Panel 和 OpenClaw 很麻烦。建议一开始就配成静态。编辑网卡配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33改成下面这种形态TYPEEthernet BOOTPROTOstatic NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.x.188 NETMASK255.255.255.0 GATEWAY192.168.x.2 DNS1223.5.5.5 DNS2114.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 curlnet-tools 提供 ifconfig 命令虽然ip addr更现代但很多教程仍用 ifconfig装上不亏。3.4 关闭 SELinux 和防火墙OpenClaw 部署过程中要挂载目录、改权限、起容器SELinux 经常会出来拦路。对一台隔离虚拟机来说关闭它是风险最小的选择。先执行setenforce 0临时关闭再修改/etc/selinux/config把SELINUXenforcing改成SELINUXpermissive重启后永久生效。防火墙也一样。CentOS 7 默认开 firewalld1Panel 安装时能自动处理端口但为了省去后续各种端口访问的怪问题我在部署阶段直接关掉systemctl stop firewalld systemctl disable firewalld说明一下设计思路这台虚拟机在 VMware NAT 网络里对外不暴露端口关闭没有安全风险。如果你的场景是云服务器或需要对外提供服务那就别关防火墙而是在 firewalld 里放行 8080 和面板端口。4. Docker 安装与国内镜像加速给 OpenClaw 准备容器运行时4.1 为什么不用系统自带的 DockerCentOS 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 官方 repoyum-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 infodocker 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 ] }改完重启 Dockersystemctl daemon-reload systemctl restart docker镜像加速器列表网上有很多选两三个稳定的填进去就行。这里提醒一句加速器解决的是“拉取慢”不是“连不上”。如果 pull 直接报 timeout先 ping 一下镜像域名判断是不是网络问题再决定要不要换加速器。4.4 Docker Compose用一个 yaml 文件管起 OpenClawOpenClaw 的部署通常提供 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 一条命令安装 1Panel1Panel 是一个开源 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 和 RedisOpenClaw 这类智能体应用通常会用到数据库和缓存。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/openclawOpenClaw 需要一些环境变量通常放在同目录下的.env文件里比较常见的几个配置项是OPENCLAW_PORT8080 DATA_DIR/opt/openclaw/data MODEL_PROVIDERopenai-compatible QWEN_API_BASEhttp://192.168.x.188:11434/v1 QWEN_API_KEYollama QWEN_MODELqwen2.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 起 Ollamadocker 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.ymlservices: 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 服务这件事其实跟在沙滩上堆城堡差不多有铲子、有模具、有退路剩下的就是玩。