guide docker deployment security

在 Docker 中运行 OpenClaw:手把手部署指南

OpenClaws.io Team

OpenClaws.io Team

@openclaws

2026年3月6日

6 分钟

在 Docker 中运行 OpenClaw:手把手部署指南

为什么选择 Docker?

在 Docker 中运行 OpenClaw 相比裸机安装有三大优势:

  1. 1.安全隔离:代理运行在一个对宿主系统访问受限的容器内。如果恶意技能或提示词注入试图访问你的文件,容器边界会限制其影响范围。
  2. 2.可复现性:同一个 Docker 镜像在任何机器上都能以相同方式运行——无论是你的笔记本电脑、VPS 还是树莓派。
  3. 3.清理方便:想从头开始?删除容器,启动一个新的就行。没有残留文件,没有损坏的 Node.js 安装。

前置条件

  • Docker Desktop(macOS/Windows)或 Docker Engine(Linux)
  • Docker Compose v2(Docker Desktop 已包含)
  • 至少 2 GB 内存可供容器使用
  • 一个 AI API 密钥(Anthropic、OpenAI 或其他支持的服务商)

快速开始

方案 A:官方 Docker Compose(推荐)

克隆 OpenClaw 仓库并使用内置的 Docker 配置:

bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw

运行设置脚本,它会创建必要的目录和配置:

bash
bash docker-setup.sh
  • ~/.openclaw/——配置文件、SOUL.md、API 密钥
  • ~/openclaw/workspace/——代理可以访问的文件

在容器内运行引导向导:

bash
docker compose run --rm openclaw-cli onboard

按照提示设置 API 密钥并连接聊天平台。然后启动网关:

bash
docker compose up -d openclaw-gateway

你的代理现在已经在后台运行了。

方案 B:预构建镜像

如果你不想克隆仓库,可以使用官方预构建镜像:

bash
docker run -d \
  --name openclaw \
  --restart unless-stopped \
  -v ~/.openclaw:/root/.openclaw \
  -v ~/openclaw/workspace:/root/workspace \
  -p 3000:3000 \
  ghcr.io/openclaw/openclaw:latest

Docker Compose 参考配置

以下是一份带注释的生产环境 docker-compose.yml

yaml
version: "3.8"
services:
  openclaw-gateway:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw
    restart: unless-stopped
    ports:
      - "3000:3000"        # Web UI
    volumes:
      - ~/.openclaw:/root/.openclaw          # Config and data
      - ~/openclaw/workspace:/root/workspace  # Agent workspace
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - TZ=Asia/Shanghai     # Set your timezone
    mem_limit: 2g            # Prevent runaway memory usage
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

在同一目录下创建一个 .env 文件,写入你的 API 密钥:

bash
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx

环境变量

变量是否必需说明
ANTHROPIC_API_KEY是*Claude API 密钥
OPENAI_API_KEYGPT API 密钥(如使用 OpenAI)
OPENCLAW_PORTWeb UI 端口(默认:3000)
OPENCLAW_HOME容器内的数据目录
TZ定时任务的时区

*至少需要一个 AI 服务商的密钥。

容器管理

bash
# 查看日志
docker logs -f openclaw

# 停止代理
docker compose stop

# 启动代理
docker compose up -d

# 修改配置后重启
docker compose restart

# 更新到最新版本
docker compose pull
docker compose up -d

# 进入容器 Shell
docker exec -it openclaw bash

# 在容器内运行 CLI 命令
docker exec openclaw openclaw skill list
docker exec openclaw openclaw status

安全加固

限制文件系统访问

只挂载代理实际需要的目录。避免挂载整个 home 目录:

yaml
volumes:
  - ~/.openclaw:/root/.openclaw:rw     # Config (read-write)
  - ~/documents:/root/docs:ro           # Documents (read-only)

网络隔离

如果你的代理不需要访问本地网络服务,可以限制其网络:

yaml
networks:
  openclaw-net:
    driver: bridge
    internal: false    # Set to true to block all external access

只读根文件系统

为了最大程度的安全,将根文件系统设为只读,只允许对特定路径进行写入:

yaml
read_only: true
tmpfs:
  - /tmp
  - /run

更新

OpenClaw 更新频繁。要更新你的 Docker 部署:

bash
docker compose pull           # Pull latest image
docker compose up -d          # Recreate container with new image
docker image prune -f         # Clean up old images

你的配置和数据保存在挂载的卷中,因此更新不会造成数据丢失。

故障排除

容器启动后立即崩溃:使用 docker logs openclaw 查看日志。常见原因:缺少 API 密钥、内存不足或端口冲突。

WhatsApp 二维码不显示:以交互模式运行引导程序:docker compose run --rm openclaw-cli onboard。二维码需要支持渲染的终端。

挂载卷出现权限错误:确保宿主机上的目录存在且归当前用户所有:mkdir -p ~/.openclaw ~/openclaw/workspace

内存占用过高:在 docker-compose.yml 中设置 mem_limit: 2g 以防止容器占用过多内存。

如需了解更多详情,请参阅官方 Docker 文档仓库中的 docker-compose.yml

订阅更新

第一时间获取新功能和玩法。放心,不会发垃圾邮件。