Docker 安装

使用 Docker 容器部署 ClawdBot

概述

Docker 提供了最简单的部署方式。无需安装依赖,一条命令即可启动 ClawdBot。 特别适合服务器部署和生产环境使用。

隔离环境

容器化部署,环境隔离

一键部署

无需安装依赖,快速启动

易于扩展

支持集群和编排

前提条件

安装 Docker

# Linux (Ubuntu/Debian)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

# macOS
brew install --cask docker
# 或下载 Docker Desktop

# Windows
# 下载并安装 Docker Desktop

验证安装

docker --version
docker compose version

快速开始

拉取镜像

docker pull clawdbot/clawdbot:latest

运行容器

docker run -d \
  --name clawdbot \
  -e ANTHROPIC_API_KEY="sk-ant-xxx..." \
  -e CLAWDBOT_TELEGRAM_TOKEN="123456:ABC..." \
  -v clawdbot-data:/data \
  -p 8080:8080 \
  clawdbot/clawdbot:latest

查看日志

docker logs -f clawdbot

进入容器

docker exec -it clawdbot /bin/sh

Docker Compose

推荐使用 Docker Compose 进行管理:

创建 docker-compose.yml

version: '3.8'

services:
  clawdbot:
    image: clawdbot/clawdbot:latest
    container_name: clawdbot
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - CLAWDBOT_TELEGRAM_TOKEN=${TELEGRAM_TOKEN}
      - CLAWDBOT_DISCORD_TOKEN=${DISCORD_TOKEN}
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/app/config
      - ./data:/app/data
      - ./logs:/app/logs
    healthcheck:
      test: ["CMD", "clawdbot", "health"]
      interval: 30s
      timeout: 10s
      retries: 3

创建 .env 文件

# .env
ANTHROPIC_API_KEY=sk-ant-xxx...
TELEGRAM_TOKEN=123456:ABC...
DISCORD_TOKEN=xxx...

启动服务

# 启动
docker compose up -d

# 查看状态
docker compose ps

# 查看日志
docker compose logs -f

# 停止
docker compose down

配置选项

环境变量

变量说明必需
ANTHROPIC_API_KEYAnthropic API 密钥是*
OPENAI_API_KEYOpenAI API 密钥是*
CLAWDBOT_TELEGRAM_TOKENTelegram Bot Token
CLAWDBOT_DISCORD_TOKENDiscord Bot Token
TZ时区设置

* 至少需要一个 AI 提供商的 API 密钥

使用配置文件

# 挂载配置文件
volumes:
  - ./config/config.yaml:/app/config/config.yaml:ro

数据持久化

推荐的卷挂载

volumes:
  # 配置文件
  - ./config:/app/config

  # 数据存储(对话历史、记忆等)
  - ./data:/app/data

  # 日志文件
  - ./logs:/app/logs

  # 工作空间(Agent 使用)
  - ./workspace:/app/workspace

使用命名卷

volumes:
  - clawdbot-config:/app/config
  - clawdbot-data:/app/data

volumes:
  clawdbot-config:
  clawdbot-data:

备份数据

# 备份
docker run --rm \
  -v clawdbot-data:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/clawdbot-backup.tar.gz /data

# 恢复
docker run --rm \
  -v clawdbot-data:/data \
  -v $(pwd):/backup \
  alpine tar xzf /backup/clawdbot-backup.tar.gz -C /

更新升级

使用 Docker Compose

# 拉取最新镜像
docker compose pull

# 重新创建容器
docker compose up -d

# 清理旧镜像
docker image prune -f

手动更新

# 停止容器
docker stop clawdbot

# 删除容器(数据在卷中,不会丢失)
docker rm clawdbot

# 拉取新镜像
docker pull clawdbot/clawdbot:latest

# 重新运行
docker run -d ... clawdbot/clawdbot:latest

指定版本

# 使用特定版本
docker pull clawdbot/clawdbot:1.2.3

# 回滚到上一版本
docker compose down
# 修改 docker-compose.yml 中的镜像版本
docker compose up -d

故障排查

容器无法启动

# 查看日志
docker logs clawdbot

# 检查配置
docker exec clawdbot clawdbot doctor

权限问题

# 确保目录权限正确
sudo chown -R 1000:1000 ./config ./data ./logs

网络问题

# 检查端口
docker port clawdbot

# 测试连接
curl http://localhost:8080/health

资源不足

# 查看资源使用
docker stats clawdbot

# 增加资源限制
services:
  clawdbot:
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '1'