--- title: Docker 快速部署 description: 五分钟快速部署 Clawdbot 到 Docker --- # Docker 快速部署指南 简单、快速、一键启动!选择适合你的方式部署。 ## 前置要求 - **Docker Desktop**(Mac/Windows)或 **Docker Engine**(Linux) - 足够的磁盘空间(约 1-2GB 用于镜像) - 网络连接 ## 方式一:一键脚本部署(推荐新手) 最简单的方式,一条命令搞定所有配置! ```bash curl -fsSL https://clawd.org.cn/install.sh | bash ``` **这个脚本会自动:** - ✅ 检查 Docker 环境 - ✅ 下载镜像 - ✅ 配置环境变量 - ✅ 启动容器 - ✅ 运行配置向导 - ✅ 生成网关令牌 完成后,在浏览器打开 `http://127.0.0.1:18789/` 即可使用。 **脚本后续操作:** - 按照提示输入渠道信息(可选) - 将生成的令牌复制到 Web UI 登录 --- ## 方式二:手动 Docker Compose 部署(适合进阶用户) 如果一键脚本不适用,或需要自定义配置,按以下步骤操作。 ### 步骤 1:创建工作目录 ```bash mkdir -p ~/openclaw-docker cd ~/openclaw-docker ``` ### 步骤 2:创建 `.env` 环境文件 将以下内容复制到 `.env` 文件: ```bash # 镜像配置 OPENCLAW_IMAGE=jiulingyun803/openclaw-cn:latest # 数据目录(相对于 docker-compose.yml 所在目录) OPENCLAW_CONFIG_DIR=./data/.openclaw OPENCLAW_WORKSPACE_DIR=./data/clawd # 网关配置 OPENCLAW_GATEWAY_PORT=18789 OPENCLAW_BRIDGE_PORT=18790 OPENCLAW_GATEWAY_BIND=lan OPENCLAW_GATEWAY_TOKEN=your-secure-token-here # Claude 集成(可选,仅使用 Claude 作为后端时填写) CLAUDE_AI_SESSION_KEY= CLAUDE_WEB_SESSION_KEY= CLAUDE_WEB_COOKIE= ``` **快速创建:** ```bash cat > .env << 'EOF' OPENCLAW_IMAGE=jiulingyun803/openclaw-cn:latest OPENCLAW_CONFIG_DIR=./data/.openclaw OPENCLAW_WORKSPACE_DIR=./data/clawd OPENCLAW_GATEWAY_PORT=18789 OPENCLAW_BRIDGE_PORT=18790 OPENCLAW_GATEWAY_BIND=lan OPENCLAW_GATEWAY_TOKEN=your-secure-token-here CLAUDE_AI_SESSION_KEY= CLAUDE_WEB_SESSION_KEY= CLAUDE_WEB_COOKIE= EOF ``` ### 步骤 3:创建 `docker-compose.yml` 文件 将以下内容复制到 `docker-compose.yml`: ```yaml services: openclaw-cn-gateway: image: ${OPENCLAW_IMAGE:-openclaw-cn:local} user: node:node environment: HOME: /home/node TERM: xterm-256color OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY} CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY} CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE} volumes: - ${OPENCLAW_CONFIG_DIR:-./data/.openclaw}:/home/node/.openclaw - ${OPENCLAW_WORKSPACE_DIR:-./data/clawd}:/home/node/clawd ports: - "${OPENCLAW_GATEWAY_PORT:-18789}:18789" - "${OPENCLAW_BRIDGE_PORT:-18790}:18790" init: true restart: unless-stopped command: [ "node", "dist/index.js", "gateway", "--bind", "${OPENCLAW_GATEWAY_BIND:-lan}", "--port", "${OPENCLAW_GATEWAY_PORT:-18789}" ] openclaw-cn-cli: image: ${OPENCLAW_IMAGE:-openclaw-cn:local} user: node:node environment: HOME: /home/node TERM: xterm-256color BROWSER: echo CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY} CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY} CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE} volumes: - ${OPENCLAW_CONFIG_DIR:-./data/.openclaw}:/home/node/.openclaw - ${OPENCLAW_WORKSPACE_DIR:-./data/clawd}:/home/node/clawd stdin_open: true tty: true init: true entrypoint: ["node", "dist/index.js"] ``` **快速创建:** 在命令行运行,文件会自动创建。 ### 步骤 4:启动容器 ```bash # 拉取最新镜像 docker compose pull # 启动网关(后台运行) docker compose up -d openclaw-cn-gateway # 查看日志(可选) docker compose logs -f openclaw-cn-gateway ``` ### 步骤 5:运行配置向导 ```bash docker compose run --rm openclaw-cn-cli onboard ``` **配置向导会提示你:** - 选择网关后端(Claude、Gemini 等) - 配置 Feishu、Telegram 等渠道 - 生成和保存配置 ### 步骤 6:访问 Web UI 打开浏览器访问: ``` http://127.0.0.1:18789/ ``` 将配置向导生成的令牌复制到登录页面即可。 --- ## 环境变量详解 | 变量 | 含义 | 默认值 | 必需 | 说明 | |------|------|--------|------|------| | `OPENCLAW_IMAGE` | Docker 镜像名称 | `openclaw-cn:local` | ❌ | 使用预构建镜像:`jiulingyun803/openclaw-cn:latest` 或 `jiulingyun803/openclaw-cn:vX.Y.Z` | | `OPENCLAW_CONFIG_DIR` | 配置文件目录 | `~/.openclaw` | ❌ | Clawdbot 配置和凭证存储位置 | | `OPENCLAW_WORKSPACE_DIR` | 工作空间目录 | `~/clawd` | ❌ | 代理工作文件存储位置 | | `OPENCLAW_GATEWAY_PORT` | 网关端口号 | `18789` | ❌ | 访问 Web UI 的端口(如需修改,访问时用新端口) | | `OPENCLAW_BRIDGE_PORT` | 桥接端口号 | `18790` | ❌ | 用于客户端连接的端口 | | `OPENCLAW_GATEWAY_BIND` | 网关绑定地址 | `lan` | ❌ | `localhost`(仅本机)/ `lan`(局域网)/ `0.0.0.0`(公网可访问,⚠️ 谨慎使用) | | `OPENCLAW_GATEWAY_TOKEN` | 网关认证令牌 | 自动生成 | ❌ | Web UI 登录令牌(可自定义或留空自动生成) | | `CLAUDE_AI_SESSION_KEY` | Claude.ai 会话密钥 | 空 | ❌ | ⚠️ 仅使用 Claude AI 作为后端时填写,获取方式见 [Claude 登录指南](/docs/providers/claude) | | `CLAUDE_WEB_SESSION_KEY` | Claude Web 会话密钥 | 空 | ❌ | ⚠️ 仅使用 Claude Web 版时填写 | | `CLAUDE_WEB_COOKIE` | Claude Web Cookie | 空 | ❌ | ⚠️ 仅使用 Claude Web 版时填写 | ### 环境变量设置方式 **方式 A:编辑 `.env` 文件(推荐)** ```bash # 编辑 .env 文件 nano .env # docker compose 会自动读取 docker compose up -d ``` **方式 B:命令行设置** ```bash export OPENCLAW_GATEWAY_PORT=18789 docker compose up -d ``` **方式 C:命令行临时覆盖** ```bash docker compose -e OPENCLAW_GATEWAY_PORT=8080 up -d ``` --- ## 常见操作 ### 查看网关状态 ```bash # 检查容器是否运行 docker compose ps # 查看网关日志 docker compose logs openclaw-cn-gateway # 实时查看日志(持续跟踪) docker compose logs -f openclaw-cn-gateway ``` ### 配置渠道 通过 CLI 容器配置各类渠道: **Telegram(需要机器人令牌):** ```bash docker compose run --rm openclaw-cn-cli channels add \ --channel telegram \ --token "YOUR_BOT_TOKEN" ``` **Discord(需要机器人令牌):** ```bash docker compose run --rm openclaw-cn-cli channels add \ --channel discord \ --token "YOUR_BOT_TOKEN" ``` **WhatsApp(QR 扫码):** ```bash docker compose run --rm openclaw-cn-cli channels login ``` **Feishu(需要 App ID 和 Secret):** ```bash docker compose run --rm openclaw-cn-cli onboard # 按提示输入信息 ``` ### 重新配置 ```bash # 重新运行配置向导 docker compose run --rm openclaw-cn-cli onboard # 查看当前配置 docker compose run --rm openclaw-cn-cli config get ``` ### 重启网关 ```bash # 重启网关容器 docker compose restart openclaw-cn-gateway # 停止网关 docker compose down # 重新启动 docker compose up -d openclaw-cn-gateway ``` ### 清理数据(谨慎操作) ```bash # 停止并删除容器 docker compose down # 删除本地数据目录 rm -rf ./data/ # 删除本地镜像(可选) docker rmi jiulingyun803/openclaw-cn:latest ``` --- ## 故障排查 ### 问题 1:容器无法启动 **症状:** `docker compose up` 后容器立即退出 **解决:** ```bash # 查看详细错误日志 docker compose logs openclaw-cn-gateway # 检查端口是否被占用 sudo netstat -ltnp | grep 18789 # 如果被占用,修改 OPENCLAW_GATEWAY_PORT # 编辑 .env,将端口改为其他(如 18790) ``` ### 问题 2:无法运行 Docker 命令(Docker 套接字权限不足) **症状:** 运行 `docker compose` 或 `docker ps` 时报错: ``` permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock ``` **原因:** 当前用户不在 `docker` 用户组,无法访问 Docker daemon 套接字。 **解决(Linux):** ```bash # 将当前用户添加到 docker 组 sudo usermod -aG docker $USER # 刷新组成员关系(无需重启) newgrp docker # 验证是否生效 docker ps ``` > **说明:** `newgrp docker` 只对当前终端会话生效。若想永久生效,完全退出再重新登录,或重启系统。 > **macOS / Windows:** 通常不会出现此问题,因为 Docker Desktop 已内置权限管理。若仍报错,请确认 Docker Desktop 正在运行。 --- ### 问题 3:权限拒绝(容器文件权限) **症状:** `Error: EACCES: permission denied, mkdir '/home/node/.openclaw/...'` **原因:** 容器以 `node:node`(UID 1000)用户运行,但宿主机上的数据目录可能由 root 创建,导致容器内的 node 用户没有写权限。 **解决:** ```bash # 创建数据目录并设置正确的所有者(UID 1000 = 容器内 node 用户) mkdir -p ./data/.openclaw ./data/clawd chown -R 1000:1000 ./data ``` 如果数据目录已存在但权限不对: ```bash # 修复已有目录的权限 chown -R 1000:1000 ./data ``` > **说明:** `1000` 是官方 Node.js Docker 镜像中 `node` 用户的 UID/GID。`docker-compose.yml` 中 `user: node:node` 指定容器以该用户运行,因此宿主机挂载的目录必须对 UID 1000 可写。 ### 问题 4:无法访问 Web UI **症状:** 浏览器访问 `http://127.0.0.1:18789` 无响应 **解决:** ```bash # 检查容器是否运行 docker compose ps # 检查网关日志 docker compose logs openclaw-cn-gateway # 验证端口是否正确 # 如果 OPENCLAW_GATEWAY_PORT=18789,则访问 :18789 # 如果改了端口,访问对应的新端口 ``` ### 问题 5:配置向导卡住 **症状:** `docker compose run --rm openclaw-cn-cli onboard` 无反应 **解决:** ```bash # 按 Ctrl+C 中断 # 检查网关是否运行 docker compose logs openclaw-cn-gateway # 重新启动网关并重试 docker compose restart openclaw-cn-gateway docker compose run --rm openclaw-cn-cli onboard ``` --- ## 从一键脚本迁移到手动配置 如果想从一键脚本切换到手动配置(或反之): ```bash # 停止现有容器 docker compose down # 备份现有配置 cp -r ~/.openclaw ~/.openclaw.backup # 更新 .env 和 docker-compose.yml # 重新启动 docker compose up -d openclaw-cn-gateway ``` 配置会自动保留在 `~/.openclaw/` 中,无需重新设置。 --- ## 下一步 - **Feishu 集成**:[Feishu 配置指南](/channels/feishu) - **Telegram 集成**:[Telegram 配置指南](/channels/telegram) - **Discord 集成**:[Discord 配置指南](/channels/discord) - **深入配置**:[完整配置文档](/configuration) - **故障排查**:[诊断工具指南](/gateway/doctor) --- ## 获取帮助 - 遇到问题?运行诊断: ```bash docker compose run --rm openclaw-cn-cli doctor ``` - 查看所有可用命令: ```bash docker compose run --rm openclaw-cn-cli --help ``` - 提交 Issue:[GitHub Issues](https://github.com/jiulingyun/openclaw-cn/issues)