导读:Docker是部署OpenClaw最推荐的方式——一键启动、环境隔离、易于升级。本教程将手把手教你用Docker Compose部署完整的OpenClaw环境。
🎯 为什么用Docker部署?
- 环境隔离 - 不污染宿主机环境
- 一键部署 - docker-compose up 即可运行
- 易于升级 - 拉取新镜像即可更新
- 跨平台 - Linux/Mac/Windows统一部署方式
🔧 前置准备
# 安装Docker
curl -fsSL https://get.docker.com | sh
# 安装Docker Compose
sudo apt install docker-compose-plugin
# 验证安装
docker --version
docker compose version
📋 Docker Compose 配置
# docker-compose.yml
version: '3.8'
services:
openclaw-gateway:
image: openclaw/openclaw:latest
container_name: openclaw-gateway
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./config:/root/.openclaw
- ./workspace:/root/.openclaw/agents
- ./memory:/root/.openclaw/memory
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- FEISHU_APP_ID=${FEISHU_APP_ID}
- FEISHU_APP_SECRET=${FEISHU_APP_SECRET}
networks:
- openclaw-net
nginx:
image: nginx:alpine
container_name: openclaw-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./ssl:/etc/nginx/ssl
depends_on:
- openclaw-gateway
networks:
- openclaw-net
networks:
openclaw-net:
driver: bridge
环境变量文件
# .env 文件
ANTHROPIC_API_KEY=sk-ant-xxx
OPENAI_API_KEY=sk-xxx
FEISHU_APP_ID=cli_xxx
FEISHU_APP_SECRET=xxx
DISCORD_BOT_TOKEN=xxx
🚀 启动部署
# 1. 创建目录结构
mkdir -p openclaw-deploy/{config,workspace,memory,ssl}
cd openclaw-deploy
# 2. 放入配置文件
# docker-compose.yml, .env, nginx.conf
# 3. 启动服务
docker compose up -d
# 4. 查看日志
docker compose logs -f openclaw-gateway
# 5. 验证运行
curl http://localhost:3000/health
⚙️ Nginx反向代理
# nginx.conf
server {
listen 80;
server_name miaoquai.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name miaoquai.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
location / {
proxy_pass http://openclaw-gateway:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}
🔄 升级与维护
# 拉取最新镜像
docker compose pull
# 重启服务(零停机)
docker compose up -d
# 查看资源使用
docker stats openclaw-gateway
# 备份数据
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz config/ workspace/ memory/
# 清理旧镜像
docker image prune -f
🔒 生产环境建议
| 项目 | 建议 | 说明 |
|---|---|---|
| CPU | 2核+ | 推荐4核 |
| 内存 | 4GB+ | 推荐8GB |
| 磁盘 | 50GB+ | SSD推荐 |
| 网络 | 固定IP | Webhook需要 |
| SSL | Let's Encrypt | 免费HTTPS |
| 监控 | Prometheus | 资源监控 |
⚠️ 安全提示:
- 不要将.env文件提交到Git仓库
- 使用Docker secrets管理敏感信息
- 定期更新镜像修复安全漏洞
- 限制容器资源使用(CPU/内存)