
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
将OpenClaw的安全性与易用性相结合!开箱即可运行基于Docker的安全沙箱化OpenClaw,支持本地或云环境部署。
运行安全的沙箱化预配置OpenClaw从未如此简单:
.env中写入配置变量npm starthttp://localhost:18789/目标受众:具备基本Docker知识的安全意识开发者。其他用户:请勿使用OpenClaw!
主要安全机制是严格隔离:AI运行在专用沙箱容器中,仅包含其工具和工作区——无主机秘密、无生产数据、无无关资源。
no-new-privileges、pids_limit: 256防止权限提升和fork炸弹networks.<network>.driver_opts.encrypted: "true",或添加服务网格)注意:如果网络既未隔离也未加密,代理可能在共享或未加密网络上嗅探秘密。因此网络隔离至关重要,生产环境强烈建议加密。
/var/secrets/secret-name,然后作为环境变量SECRET_NAME导出到OpenClaw。docker:dind),代理可在隔离环境中运行docker,与主机Docker隔离。注意代理可获取该隔离容器的root权限,但仅在隔离容器内。发生突破时重启容器即可恢复,无数据风险。tools.fs.workspaceOnly: true)——文件工具限制在沙箱工作区。workspaceOnly设置限制OpenClaw的文件工具到工作区。但exec/shell命令仍可读取容器系统文件(如/etc/passwd、/proc)。这是可接受的,因为沙箱是隔离容器——其中无主机秘密。loopDetection)——防止工具/代理循环的断路器。主要用于防止令牌过度消耗。strictHostKeyChecking: false在Docker管理DNS的受控内部Docker网络中可接受。生产环境强化可考虑固定主机密钥。
plantuml@startuml architecture actor User as user cloud docker { node "mwaeckerlin/openclaw:gateway" as gw { [Gateway] as ctrl storage "openclaw-config" as cfg ctrl - cfg } node "mwaeckerlin/openclaw-mcp-gateway" { [MCP OpenClaw Server] as mcp } node "mwaeckerlin/openclaw:sandbox" as sb { [Sandbox] as sshd storage "openclaw-workspace" as ws sshd -right- ws } node "openclaw-dind" as dind { [Docker] as dd storage "openclaw-docker" as dv dd -left- dv } node "mwaeckerlin/mcp-github" { [Github-Gateway] as gh } component "allow-write-access" as aw } user --> ctrl : "HTTP" ctrl --> sshd : "SSH" sshd --up--> mcp : openclaw\ncommands mcp --up--> ctrl : forward\ncommands sshd -left-> dd : docker aw .up.> cfg : chown sshd --> gh gh ----> [GitHib] @enduml
使用docker compose和.env文件进行本地测试。
最简单的用法是使用https://platform.openai.com/api-keys%E5%B9%B6%E5%AD%98%E5%82%A8%E5%9C%A8%60OPENAI_API_KEY%60%E4%B8%AD%E3%80%82%E5%85%B6%E4%BB%96%E7%A7%98%E5%AF%86%E5%8F%AF%E9%9A%8F%E6%9C%BA%E7%94%9F%E6%88%90%EF%BC%9A
bashssh-keygen -t ed25519 -f openclaw-key -N "" -C "openclaw-sandbox" cat > .env <<EOF OPENCLAW_GATEWAY_TOKEN=$(pwgen 40 1) OPENCLAW_SANDBOX_SSH_PUBLIC_KEY=$(cat openclaw-key.pub) OPENCLAW_SANDBOX_SSH_PRIVATE_KEY=$(sed -z 's/\n/\\n/g' openclaw-key) OPENAI_API_KEY=sk-...[在此处放置令牌] EOF rm openclaw-key openclaw-key.pub
如果使用MCP网关(默认启用),生成设备密钥对以实现安全的网关到MCP通信:
bashnode generate-device-pairing.mjs
这会将OPENCLAW_DEVICE_IDENTITY和OPENCLAW_DEVICE_PAIRING追加到.env。MCP网关使用私钥进行身份验证,OpenClaw网关预注册公钥,使设备在首次连接时受信任。
使用--stdout可打印值而非写入.env。
前台运行(实时查看日志):
bashnpm start
后台运行(守护进程模式):
bashnpm run start:daemon
控制UI:http://localhost:18789/
仅用于本地/可信网络。网关令牌未加密传输。不要在没有TLS反向代理的情况下将端口***暴露到互联网。
网关入口点遍历/run/secrets/中的所有文件,并将每个文件导出为环境变量。文件名转换为大写,破折号替换为下划线,例如:
| 环境变量 | 秘密名称 | 备选秘密名称 |
|---|---|---|
OPENAI_API_KEY | openai_api_key | openai-api-key |
OPENCLAW_SANDBOX_SSH_PRIVATE_KEY | openclaw_sandbox_ssh_private_key | openclaw-sandbox-ssh-private-key |
| … | … | … |
沙箱直接从/run/secrets/openai_api_key或备选的/run/secrets/openai-api-key读取公钥(当OPENAI_API_KEY未设置时,-和_可互换)。
这意味着任何Docker Secret自动作为环境变量可用——无需显式映射。秘密优先级高于环境变量。
| 变量 | 是否必填 | 描述 |
|---|---|---|
OPENCLAW_GATEWAY_TOKEN | 是 | 控制UI的共享秘密 |
OPENCLAW_SANDBOX_SSH_PUBLIC_KEY | 是 | 沙箱访问的SSH公钥(ed25519) |
OPENCLAW_SANDBOX_SSH_PRIVATE_KEY | 是 | SSH私钥,\n编码(网关→沙箱) |
| 变量 | 是否必填 | 描述 |
|---|---|---|
OPENAI_API_KEY | 否 | OpenAI API密钥;启用OpenAI提供程序、Whisper音频转录,如未设置LITELLM_MASTER_KEY则用作默认模型提供程序 |
OPENCLAW_WHISPER_API_KEY | 否 | Whisper API密钥覆盖;如未设置且OPENAI_API_KEY已设置,则从OPENAI_API_KEY派生 |
OVERWRITE_CONFIG | 否 | 如设置,每次启动时用内置默认值覆盖openclaw.json |
OPENCLAW_CONFIG_DIR | 否 | 配置的主机路径(默认:Docker卷) |
OPENCLAW_STATE_DIR | 否 | 网关容器内的OpenClaw状态目录路径(默认:~/.openclaw) |
OPENCLAW_GATEWAY_PORT | 否 | 网关端口(默认:***) |
OPENCLAW_ELEVENLABS_API_KEY | — | ElevenLabs API密钥;启用ElevenLabs TTS(否则使用Microsoft TTS) |
OPENCLAW_NOTION_API_KEY | — | Notion API密钥;启用Notion技能 |
OPENCLAW_GITHUB_TOKEN | — | GitHub个人访问令牌;通过ACPX启用GitHub MCP服务器(令牌保留在网关端,沙箱仅可见MCP工具) |
OPENCLAW_GITEA_HOST | — | ACPX MCP服务器设置的Gitea主机URL |
OPENCLAW_GITEA_TOKEN | — | Gitea个人访问令牌;通过ACPX启用Gitea MCP服务器 |
OPENCLAW_GITEA_INSECURE | — | 可选Gitea MCP设置(GITEA_INSECURE) |
OPENCLAW_TRELLO_API_KEY | — | Trello API密钥;启用Trello技能 |
OPENCLAW_TELEGRAM_BOT_TOKEN | — | 机器人令牌;启用通道 |
OPENCLAW_DISCORD_BOT_TOKEN | — | 机器人令牌;启用通道 |
OPENCLAW_SLACK_BOT_TOKEN | — | Slack机器人令牌;启用Slack通道 |
OPENCLAW_SLACK_APP_TOKEN | — | Slack套接字模式应用令牌(channels.slack.appToken) |
OPENCLAW_BRAVE_API_KEY | — | Brave搜索API密钥;启用Brave插件(否则使用DuckDuckGo) |
OPENCLAW_GOOGLECHAT_SERVICE_ACCOUNT_JSON | — | Google Chat服务账户JSON;启用Google Chat通道 |
OPENCLAW_GOOGLECHAT_SERVICE_ACCOUNT_FILE | — | Google Chat服务账户文件路径 |
OPENCLAW_MATTERMOST_BOT_TOKEN | — | Mattermost机器人令牌;启用Mattermost通道 |
OPENCLAW_MATTERMOST_BASE_URL | — | Mattermost基础URL |
OPENCLAW_MATRIX_HOMESERVER | — | Matrix homeserver URL |
OPENCLAW_MATRIX_ACCESS_TOKEN | — | Matrix访问令牌;启用Matrix通道 |
OPENCLAW_MSTEAMS_APP_ID | — | Microsoft Teams应用ID |
OPENCLAW_MSTEAMS_APP_PASSWORD | — | Microsoft Teams应用密码 |
OPENCLAW_MSTEAMS_TENANT_ID | — | Microsoft Teams租户ID |
OPENCLAW_BLUEBUBBLES_SERVER_URL | — | BlueBubbles服务器URL |
OPENCLAW_BLUEBUBBLES_PASSWORD | — | BlueBubbles密码 |
OPENCLAW_IRC_NICKSERV_PASSWORD | — | IRC NickServ密码 |
当设置LITELLM_MASTER_KEY时,LiteLLM启用为模型提供程序,默认模型切换为litellm/openrouter/anthropic/claude-sonnet-4。未设置时,直接使用OpenAI,默认模型为openai/gpt-4o。
| 变量 | 默认值 | 描述 |
|---|---|---|
LITELLM_MASTER_KEY | — | LiteLLM API认证的Bearer令牌;启用LiteLLM提供程序 |
LITELLM_URL | — | LiteLLM代理的基础URL,用于模型发现 |
LITELLM_BASE_URL | http://litellm:4000 | 连接到LiteLLM的基础URL |
配置后,模型列表从提供程序动态发现:
LITELLM_URL/v1/models → models.providers.litellm.models${OPENCLAW_OPENAI_BASE_URL:-https://api.openai.com/v1}/models → models.providers.openai.models(除非显式设置OPENCLAW_OPENAI_MODELS_JSON)| 变量 | 默认值 | 描述 |
|---|---|---|
OPENCLAW_PRIMARY_MODEL | (自动) | 默认LLM模型;如配置LiteLLM则自动选择litellm/openrouter/anthropic/claude-sonnet-4,否则为openai/gpt-4o |
OPENCLAW_HEARTBEAT_INTERVAL | 0s | 代理心跳持续时间(如30m、2h,0s=禁用) |
OPENCLAW_TIMEOUT_SECONDS | 300 | 代理执行超时(秒) |
OPENCLAW_MAX_CONCURRENT | 5 | 最大并发代理数 |
OPENCLAW_CRON_ENABLED | true | 启用定时任务调度支持 |
OPENCLAW_BASE_PATH | (空) | 控制UI的基础路径(如反向代理后的/openclaw) |
OPENCLAW_AGENT_SCOPE | agent | 代理会话的沙箱范围;允许值:session、agent、shared |
OPENCLAW_DM_SCOPE | main | 会话路由的DM范围;允许值:main、per-peer、per-channel-peer、per-account-channel-peer |
OPENCLAW_SESSION_VISIBILITY | agent | 工具的会话可见性;允许值:agent、global |
OPENCLAW_SESSION_TOOLS_VISIBILITY | all | 沙箱会话中可见的工具;允许值:all、none |
| 变量 | 默认值 | 描述 |
|---|---|---|
OPENCLAW_PLUGINS_JSON | — | 完整的plugins部分JSON |
OPENCLAW_PLUGIN_ENTRIES_JSON | — | 合并到生成配置中的额外plugins.entries对象 |
PLUGINS | — | 传递给openclaw plugins install的手动安装规范 |
示例:
bashOPENCLAW_PLUGIN_ENTRIES_JSON='{"matrix":{"enabled":true,"config":{"homeserver":"[***]","accessToken":"${OPENCLAW_MATRIX_ACCESS_TOKEN}"}}}' PLUG
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 mwaeckerlin/openclaw 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: