+Skills 零门槛教程:2026 阿里云 Docker 一键部署与 TaoToken 接入)
1. 为什么我劝你先搞懂 OpenClaw 再动手部署OpenClaw曾用名 Clawdbot、Moltbot是一个开源的本地 AI 智能体框架它能让你用自然语言指挥服务器干活整理文件、跑脚本、查资料、定时发邮件、生成代码甚至把多个 Skills 串成一条自动化流水线。适合谁适合想拥有一个 7×24 小时私有助手、又不想把数据交给第三方 SaaS 的个人开发者和小团队。它最大的特点是轻量、可扩展、能私有化部署模型 endpoint 可以换成任意兼容 OpenAI 协议的服务。但我在帮朋友排查部署问题时发现新手卡住的地方高度集中Docker 装不上、端口没放行、Skills 目录挂载错、模型 endpoint 填了却报 401。这些问题单看都不难凑在一起就让人抓狂。所以这篇教程不玩虚的直接给你一份能在阿里云 ECS 上复制粘贴跑通的 docker-compose 配置把 Skills 挂载、环境变量、TaoToken 接入的 settings 片段全部写清楚最后附上容器日志和接口连通性验证步骤。你照着做10 到 20 分钟能跑起来。需要提前说明的是本文聚焦的是「自部署 模型接入」这条链路不涉及任何网络加速工具所有操作都在阿里云控制台和服务器命令行内完成。你只需要一台能正常访问公网的 ECS以及一个可用的模型 API Key。下面从环境准备开始一步步来。2. 阿里云 ECS 环境准备与 Docker 安装踩坑记录2.1 实例规格与系统镜像怎么选在阿里云控制台创建 ECS 实例时规格建议 2 核 2GB 起步2 核 4GB 会更流畅因为 OpenClaw 跑起来后还要留内存给 Skills 里的子进程。硬盘 40GB 足够系统盘选高效云盘即可。地域方面如果你主要在国内使用选离你近的地域延迟更低如果涉及联网搜索类 Skill需要确认该地域的出网策略是否满足你的需求。系统镜像我实测下来最省心的是 Alibaba Cloud Linux 3它和 CentOS 7 的包管理兼容Docker 官方脚本支持也好。Ubuntu 22.04 同样没问题看你熟悉哪个。创建实例时设置好 root 密码或密钥对记牢后面远程连接要用。安全组是新手第一大坑。默认安全组往往只开了 22 端口OpenClaw 的 Web 面板默认走 18789你必须手动加一条入方向规则协议 TCP端口 18789授权对象 0.0.0.0/0生产环境建议改成你的固定 IP。这一步不做后面浏览器打不开面板你会以为是服务没起来其实是流量根本没进来。2.2 用官方脚本装 Docker 及常见报错处理远程连接上服务器后先更新依赖再装 Docker。Alibaba Cloud Linux 3 和 CentOS 系用 yumsudo yum update -y sudo yum install -y curl wget git curl -fsSL https://get.docker.com | sudo bash sudo systemctl start docker sudo systemctl enable docker docker --version如果你遇到Cannot connect to the Docker daemon八成是服务没启动执行sudo systemctl status docker看状态。如果卡在拉取镜像慢可以配置阿里云镜像加速器在/etc/docker/daemon.json里加上 registry-mirrors 地址然后sudo systemctl daemon-reload sudo systemctl restart docker。Ubuntu 用户把 yum 换成 apt 即可。装完后用docker run hello-world验证能打印出欢迎信息说明 Docker 正常。这一步别跳过Docker 没通后面全白搭。2.3 创建目录结构与权限设置OpenClaw 需要持久化配置和数据我习惯放在/opt/openclaw下分 config、data、skills 三个子目录sudo mkdir -p /opt/openclaw/{config,data,skills} sudo chown -R $USER:$USER /opt/openclaw cd /opt/openclawskills 目录单独拎出来是为了后面挂载自定义 Skill 时不用动容器内部。权限用当前用户即可如果你用 root 操作就保持 root。目录建好后ls -la /opt/openclaw应该能看到三个空目录确认无误再往下走。3. docker-compose 一键拉起 OpenClaw 与 Skills 挂载配置3.1 完整 docker-compose.yml 可直接复制比起一长串docker run我更推荐用 docker-compose配置清晰、改起来方便。在/opt/openclaw下新建docker-compose.ymlversion: 3.8 services: openclaw: image: openclaw/openclaw:2026-stable container_name: openclaw restart: always ports: - 18789:18789 volumes: - ./config:/app/config - ./data:/app/data - ./skills:/app/skills environment: - OPENCLAW_PORT18789 - OPENCLAW_DATA_DIR/app/data - OPENCLAW_SKILLS_DIR/app/skills - OPENCLAW_LOG_LEVELinfo - OPENCLAW_MODEL_BASE_URLhttps://taotoken.net/api - OPENCLAW_MODEL_API_KEYsk-你的TaoToken密钥 - OPENCLAW_MODEL_IDclaude-sonnet-4-5 healthcheck: test: [CMD, curl, -f, http://localhost:18789/health] interval: 30s timeout: 10s retries: 3三个 volume 分别对应配置、数据、技能目录容器重建数据不丢。environment 里的模型相关变量是接入 TaoToken 的关键下一节细说。healthcheck 用来判断容器是否真的健康不是只看进程在不在。3.2 Skills 目录挂载与自定义技能加载Skills 是 OpenClaw 的灵魂。官方镜像内置了一批常用技能但你想加自己的就往./skills里放。挂载后容器内路径是/app/skillsOpenClaw 启动时会扫描这个目录下的技能清单文件。一个最小 Skill 的结构长这样skills/ my-skill/ manifest.json handler.pymanifest.json里声明技能名、触发词、入口文件。放好后重启容器用docker exec -it openclaw openclaw skills list就能看到新技能。如果你只是用官方技能可以进容器执行安装命令docker exec -it openclaw openclaw skills install file-manager docker exec -it openclaw openclaw skills install scheduler docker exec -it openclaw openclaw skills install weather安装完docker restart openclaw生效。注意通过命令安装的技能会写进 data 目录和挂载的 skills 目录是两套机制别搞混。3.3 环境变量清单与模型 endpoint 指向 TaoToken环境变量里最关键的三个是OPENCLAW_MODEL_BASE_URL、OPENCLAW_MODEL_API_KEY、OPENCLAW_MODEL_ID。Base URL 填https://taotoken.net/apiKey 填你在 TaoToken 控制台生成的密钥Model ID 填你要用的模型名。这三件套缺一不可少一个就会在请求时报错。如果你不想把 Key 写在 compose 文件里推荐可以改用.env文件OPENCLAW_MODEL_API_KEYsk-你的密钥然后 compose 里写- OPENCLAW_MODEL_API_KEY${OPENCLAW_MODEL_API_KEY}。这样 Key 不会进版本库。启动命令docker compose up -d docker compose logs -f看到日志里出现server listening on 18789和model endpoint loaded就说明起来了。4. 验证请求容器日志、健康检查与接口连通性4.1 看容器日志确认启动成功启动后第一件事是看日志docker logs -f openclaw正常启动会依次打印加载配置、初始化数据库、扫描 skills 目录、注册模型 endpoint、监听端口。如果卡在某一步日志会给出具体原因。我见过最多的是 skills 目录权限不对导致扫描失败日志里会写permission denied这时sudo chown -R 1000:1000 /opt/openclaw/skills再重启即可。4.2 用 curl 验证模型接口连通性容器起来不代表模型能通。进容器内部测一下docker exec -it openclaw sh curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $OPENCLAW_MODEL_API_KEY \ -H Content-Type: application/json \ -d {model:claude-sonnet-4-5,messages:[{role:user,content:ping}]}返回里有choices字段就说明模型链路通了。如果返回 401检查 Key 是否复制完整、有没有多余空格如果返回model not found检查 Model ID 拼写。这一步通了Web 面板里的对话基本不会出问题。4.3 Web 面板访问与首次配对浏览器打开http://你的公网IP:18789首次访问会要求配对面板上会显示一个配对码或 Token复制保存。进去后在设置里确认模型 endpoint 显示的是你配置的地址。随便发一句「你好」能正常回复就大功告成。如果面板打不开先curl http://localhost:18789/health在服务器本地测本地通说明是安全组问题本地不通说明容器没起好。这个二分法能帮你快速定位。5. 本篇常见报错排查401、local proxy failed、reading choices5.1 401 Unauthorized 与 Key 配置401 几乎都是 Key 的问题。三种可能Key 复制时带了换行或空格Key 已过期或在控制台被禁用环境变量没生效容器读到的还是旧值。排查方法docker exec -it openclaw env | grep MODEL看实际注入的值和你以为的是否一致。改完 compose 后要docker compose up -d重建容器光 restart 不会重新读 environment。5.2 local proxy failed 与网络出口local proxy failed通常出现在容器内请求外部接口时。先确认容器能出网docker exec -it openclaw curl -I https://taotoken.net/api。如果超时检查 ECS 的安全组出方向规则和路由表。注意这里说的是正常的公网访问配置不涉及任何特殊网络工具。如果 ECS 本身能出网而容器不能检查 Docker 的 DNS 配置在 daemon.json 里加dns: [223.5.5.5]后重启 Docker。5.3 reading choices 报错与响应解析error reading choices说明请求发出去了、也收到响应了但响应结构不符合预期。常见原因是 Base URL 写成了https://taotoken.net/api/v1而代码又自动拼了/v1导致路径变成/api/v1/v1/...。正确写法是 Base URL 只到/api让客户端自己拼版本路径。另一个原因是 Model ID 填了不存在的模型服务端返回了错误结构。对照官方文档确认路径和模型名即可。5.4 OAuth 与鉴权模式混淆有些模型服务用 OAuth 流程而 OpenClaw 默认走 API Key 鉴权。如果你看到 OAuth 相关报错说明配置里混入了不匹配的鉴权方式。TaoToken 走的是标准 Bearer Token不需要 OAuth。检查环境变量里有没有多余的 OAuth 相关字段删掉后重建容器。记住三件套Base URL、Key、Model ID其他鉴权字段一律不加。6. 长期编码与 Agent 场景把 OpenClaw 用起来跑通只是开始。如果你打算把 OpenClaw 当长期编码助手或自动化 Agent 用建议去 TaoToken 控制台开一个 Coding Plan额度更划算适合高频调用。日常运维记住几条命令docker compose logs -f看日志docker compose pull docker compose up -d升级镜像且数据不丢cp -r /opt/openclaw /opt/openclaw-backup定期备份。Skills 方面先从 file-manager 和 scheduler 入手把「定时整理日志」「自动归档文件」这类重复劳动交给它。等你熟悉了 manifest 结构再写自己的 Skill 接内部系统。模型对话调试可以去模型对话页面直接试 prompt确认效果再写进 Skill。API Key 管理和接入文档在控制台和文档页都能找到遇到鉴权问题先翻文档再动手改配置。最后提醒一句所有配置改完养成docker compose up -d重建而不是restart的习惯环境变量和挂载变更才能真正生效。这套流程我在多台 ECS 上复现过按顺序走基本一次成功。