🐳 OpenClaw Docker 部署教程

Docker Compose · 环境配置 · 持久化存储 · 反向代理

导读:Docker是部署OpenClaw最推荐的方式——一键启动、环境隔离、易于升级。本教程将手把手教你用Docker Compose部署完整的OpenClaw环境。

🎯 为什么用Docker部署?

🔧 前置准备

# 安装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

🔒 生产环境建议

项目建议说明
CPU2核+推荐4核
内存4GB+推荐8GB
磁盘50GB+SSD推荐
网络固定IPWebhook需要
SSLLet's Encrypt免费HTTPS
监控Prometheus资源监控
⚠️ 安全提示:
  • 不要将.env文件提交到Git仓库
  • 使用Docker secrets管理敏感信息
  • 定期更新镜像修复安全漏洞
  • 限制容器资源使用(CPU/内存)

🔗 相关资源