OpenClaw 是一款开源的自托管 AI 助手,能够通过Telegram、WhatsApp、Discord、Matrix等多种即时通讯渠道提供实时交互,支持文件操作、自动化任务、浏览器控制等实用功能。相比云端 AI 服务,OpenClaw 的最大优势在于数据完全本地化、无需上传隐私信息,且响应速度快、始终在线。
很多人好奇:用 Docker 装 OpenClaw 难不难?答案是——相对简单。官方推荐的 Docker 部署方式将复杂依赖全部容器化,新手只要会复制粘贴命令,基本能在 30 分钟内完成部署。本文将手把手带你走完从环境准备到生产优化的全流程,步骤清晰、可直接操作,即使是初次接触 Docker 的用户也能顺利上手。

文章导航
一、OpenClaw 简介与 Docker 部署优势
OpenClaw本质是一个本地运行的 AI 代理框架,结合大语言模型与工具调用,实现“能说也会做”的智能助手。它支持多通道接入、可视化 Web 控制台、插件扩展,适合开发者、职场人士和 AI 爱好者用于自动化办公、代码辅助、文件管理等场景。
为什么推荐 Docker 部署?
- 环境隔离:避免本地 Node.js、Python 等依赖冲突
- 一键启停:docker compose up -d 即可启动全部服务
- 易于迁移:配置文件 + Volume 数据可完整备份迁移
- 生产友好:支持资源限制、重启策略、健康检查、日志轮转
目前官方没有发布预构建镜像,因此需要从源码本地构建,但整个过程已被社区验证非常稳定。
二、系统要求与环境准备
部署前请确认你的服务器或本地机器满足以下最低配置:
| 项目 | 最低要求 | 推荐配置 | 说明 |
|---|---|---|---|
| 操作系统 | Ubuntu 20.04/22.04、Debian、CentOS 等 | Ubuntu 22.04 LTS | Linux 最稳定,macOS/Windows 也可使用 Docker Desktop |
| CPU | 2 核 | 4 核及以上 | 多核可提升并发任务处理速度 |
| 内存 | 4GB | 8GB 及以上 | 大模型推理时内存占用较高 |
| 磁盘空间 | 20GB | 50GB 及以上 | 包含源码、Docker 镜像、数据库数据 |
| 网络 | 稳定互联网连接 | 国内建议配置镜像加速 | 需要访问 GitHub、Docker Hub |
国内用户网络优化建议
国内直接访问 GitHub 和 Docker Hub 可能较慢,建议提前配置镜像加速:
# Docker 镜像加速(阿里云示例)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、安装 Docker 与 Docker Compose
方式一:官方安装(网络良好的环境)
# 安装 Docker
curl -fsSL https://get.docker.com | bash
# 将当前用户加入 docker 组(避免每次 sudo)
sudo usermod -aG docker $USER
newgrp docker
# 验证
docker --version
方式二:国内一键脚本(推荐)
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
该脚本已内置国内镜像源,安装完成后同样执行 docker --version 验证。
安装 Docker Compose(v2 版本已集成在 Docker 中,通常无需单独安装):
docker compose version
如果提示未找到,可手动安装最新版:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
四、获取源码并准备配置文件
# 创建项目目录
mkdir -p ~/clawdbot && cd ~/clawdbot
# 克隆官方仓库(国内慢可换 Gitee 镜像)
git clone https://github.com/clawdbot/clawdbot.git .
# 或者国内镜像(推荐)
# git clone https://gitee.com/mirrors/clawdbot.git .
项目根目录包含:
- Dockerfile
- docker-compose.yml(官方基础版)
- .env.example
配置环境变量
生产环境建议使用独立配置文件,避免与测试混淆:
cp .env.example .env.production
编辑 .env.production(推荐使用 vim 或 nano):
nano .env.production
关键配置项说明(以下为推荐配置,其余保持默认):
| 配置项 | 示例值 | 说明 |
|---|---|---|
| NODE_ENV | production | 生产模式,开启更严格的日志和安全策略 |
| GATEWAY_PORT | 3000 | Web 控制台端口,可根据需要修改 |
| DB_PASSWORD | 你的强随机密码(≥16位) | 数据库密码,必须修改! |
| DATABASE_URL | postgresql://clawdbot:${DB_PASSWORD}@db:5432/clawdbot | 自动生成,无需手动修改 |
| LOG_LEVEL | info | 日志级别,生产建议 info,调试时可改为 debug |
| WORKER_CONCURRENCY | 4 | Worker 并发数,根据 CPU 核心数调整 |
保存后加固权限:
chmod 600 .env.production
五、首次初始化与服务启动
1. 初始化数据库(首次部署必须)
docker compose --env-file .env.production run --rm clawdbot-cli onboard
该命令会创建数据库结构并进行基础配置,执行成功后会提示完成。
2. 启动服务(生产推荐配置)
官方 docker-compose.yml 仅适合测试,生产环境建议新建 docker-compose.prod.yml,内容如下(可直接复制保存):
version: '3.8'
services:
clawdbot-gateway:
image: clawdbot:latest
command: ["gateway"]
ports:
- "3000:3000"
env_file: .env.production
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"] # 如无官方 health 接口,可改为端口检查
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
cpus: "2.0"
mem_limit: 2g
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "5"
volumes:
- clawdbot-logs:/var/log/clawdbot
clawdbot-worker:
image: clawdbot:latest
command: ["worker"]
env_file: .env.production
restart: unless-stopped
cpus: "1.5"
mem_limit: 1g
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "5"
db:
image: postgres:15-alpine
env_file: .env.production
environment:
- POSTGRES_USER=clawdbot
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=clawdbot
volumes:
- clawdbot-db-data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U clawdbot -d clawdbot"]
interval: 10s
timeout: 5s
retries: 5
cpus: "1.0"
mem_limit: 1g
volumes:
clawdbot-db-data:
clawdbot-logs:
3. 构建镜像并启动
# 构建本地镜像(首次需要,约 5-15 分钟)
docker build -t clawdbot:latest .
# 启动生产配置
docker compose -f docker-compose.prod.yml up -d
# 查看状态
docker compose -f docker-compose.prod.yml ps
看到 gateway、worker、db 三个服务状态为 Up(健康检查为 healthy)即为成功。
4. 访问 Web 控制台
浏览器打开:http://你的服务器IP:3000
首次访问会引导完成注册和 Bot Token 配置。
六、生产环境核心优化
1. 数据持久化与备份(必须)
数据库数据存储在名为 clawdbot-db-data 的 Volume 中,Volume ≠ 备份,生产环境必须定期备份。
手动备份:
docker compose -f docker-compose.prod.yml exec -T db pg_dump -U clawdbot clawdbot > clawdbot_backup_$(date +%Y%m%d_%H%M%S).sql
chmod 600 clawdbot_backup_*.sql
自动备份脚本(推荐):
#!/bin/bash
BACKUP_DIR="/data/clawdbot/backup"
mkdir -p $BACKUP_DIR
BACKUP_FILE="$BACKUP_DIR/clawdbot_$(date +%Y%m%d_%H%M%S).sql"
docker compose -f /path/to/docker-compose.prod.yml exec -T db pg_dump -U clawdbot clawdbot > $BACKUP_FILE
chmod 600 $BACKUP_FILE
find $BACKUP_DIR -name "clawdbot_*.sql" -mtime +7 -delete
加入 crontab 每日执行:
crontab -e
# 添加一行(每日凌晨 2 点)
0 2 * * * /path/to/backup.sh >> /var/log/clawdbot_backup.log 2>&1
2. 防火墙与安全加固
# 只开放必要端口
sudo ufw allow 22/tcp # SSH
sudo ufw allow 3000/tcp # Clawdbot Gateway
sudo ufw enable
云服务器请在控制台安全组同样只放行 3000 端口,禁止暴露 5432 数据库端口。
3. HTTPS 配置(推荐)
使用 Nginx 反向代理 + Let’s Encrypt:
sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
七、常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 构建镜像卡住或失败 | 网络问题、npm 下载慢 | 在 Dockerfile 中添加国内镜像源:RUN npm config set registry https://registry.npmmirror.com |
| 启动后 gateway 容器反复重启 | 数据库连接失败、密码错误 | 检查 .env.production 中 DB_PASSWORD 是否一致,重启 db 容器 |
| 访问 3000 端口显示连接拒绝 | 防火墙或安全组未放行 | 检查 ufw / 云安全组规则 |
| 日志磁盘占满 | 未配置日志轮转 | 已在上文生产 compose 中配置 json-file 轮转 |
| 升级后服务异常 | 数据库 schema 变更 | 升级前必备份,参考官方 changelog 执行迁移命令 |
八、总结与进阶建议
通过以上步骤,你已经完成了一个生产可用的 OpenClaw Docker 部署。整个过程确实不复杂——准备环境、克隆源码、配置变量、构建启动、优化备份,几乎所有操作都是复制命令执行即可。
部署完成后,你可以:
- 配置 Matrix、Telegram 等通道实现多端交互
- 接入国内模型(如 MiniMax、DeepSeek)提升响应速度
- 安装社区插件扩展文件管理、日历同步等功能
- 进一步迁移到 Kubernetes 实现高可用
OpenClaw 的魅力在于完全掌控在自己手中,数据隐私、响应速度、功能扩展都远超云端服务。希望这篇完整流程解析能帮你快速上手,享受本地 AI 助手的便利!如果还有其他问题,欢迎留言交流。
延展阅读: