Phase 1 / Ep 03: Docker 容器化安装 —— 安全隔离的最佳实践

⏱ 预计阅读 5 分钟 更新于 2026/4/13

🎯 学习目标:使用 Docker Compose 运行 OpenClaw,理解容器化隔离对 Agent 安全的重要性。

1. 为什么推荐 Docker?

OpenClaw Agent 拥有强大的工具能力——它能执行 Shell 命令、读写文件、访问网络。这也意味着,如果配置不当,Agent 可能误操作你的系统。

Docker 提供进程级隔离:Agent 只能访问你显式挂载给它的目录,即使出错也不会影响宿主系统。

graph TD
    subgraph Host["🖥️ macOS 宿主机"]
        DockerEngine["Docker Engine"]
        Volume["~/.openclaw-data\n数据卷"]
        Env[".env 文件\nAPI Keys"]
    end

    subgraph Container["📦 OpenClaw 容器"]
        Gateway["Gateway 进程"]
        Agent["Agent 运行时"]
        Node["Node.js v22"]
    end

    DockerEngine --> Container
    Volume -.->|"挂载 /data"| Container
    Env -.->|"注入"| Container
    Gateway -->|"HTTPS"| LLM["Anthropic API"]
    Gateway -->|"HTTPS"| TG["Telegram API"]

2. 最小化 docker-compose.yml

创建一个专用目录并编写配置文件:

mkdir ~/openclaw-docker && cd ~/openclaw-docker
# docker-compose.yml
version: '3.8'
services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw-agent
    restart: unless-stopped
    env_file: .env
    volumes:
      - ./data:/root/.openclaw     # 数据持久化
      - ./workspace:/workspace     # Agent 工作空间
    ports:
      - "3377:3377"                # Dashboard(可选)
    healthcheck:
      test: ["CMD", "openclaw", "status"]
      interval: 60s
      timeout: 10s
      retries: 3

3. 环境变量管理

创建 .env 文件存放敏感配置:

# .env(绝对不要提交到 Git!)
ANTHROPIC_API_KEY=sk-ant-api03-xxxx
OPENCLAW_LLM_PROVIDER=anthropic
OPENCLAW_LLM_MODEL=claude-sonnet-4-20250514

⚠️ 安全提醒:将 .env 加入 .gitignore,API Key 永远不要硬编码到配置文件中。

4. 启动与验证

# 启动(后台运行)
docker compose up -d

# 查看日志
docker compose logs -f openclaw

# 进入容器交互
docker compose exec openclaw openclaw status
docker compose exec openclaw openclaw doctor

5. Volume 挂载策略

宿主机路径 容器内路径 用途
./data /root/.openclaw Agent 配置、记忆、会话(必须持久化
./workspace /workspace Agent 的文件操作沙箱
./plugins /root/.openclaw/plugins 自定义 Plugin(可选)

6. 容器 vs 原生安装的决策

维度 macOS 原生 Docker
安装难度 ⭐⭐
安全隔离 ❌ 无 ✅ 进程级
迁移能力 强(整个 data 目录迁移即可)
性能 最佳 轻微损耗
适用场景 开发调试 个人日用 / VPS 部署

下节预告: Ep 04,我们在 UTM 虚拟机里安装 Linux 版 OpenClaw,实现内核级隔离——这是安全等级最高的方案,适合运行 full 权限的 Agent。