Cloudflare Containers 深度研究:在边缘跑完整 Linux 容器,Worker 当编排器

> 文档: developers.cloudflare.com/containers

> 博客: Containers are coming to Cloudflare Workers

> 状态: Open Beta(2025 年 6 月起)

> 研究时间: 2026-03-27

🎯 一句话版本

Cloudflare 让你在 Workers 平台上跑完整 Linux 容器——任意语言、完整文件系统、多核 CPU、GB 级内存。Worker 负责路由和编排(当 API Gateway / Service Mesh / Orchestrator),容器跑在独立 VM 里。wrangler deploy 一条命令全球部署,镜像自动预分发到 300+ 节点。

🆚 Dynamic Workers vs Containers:什么时候用哪个

Dynamic WorkersContainers
**底层**V8 Isolate**完整 Linux VM**
**语言**仅 JS/Wasm**任意语言**
**文件系统**❌ 没有✅ 完整
**启动****~5ms**~2-3 秒
**内存**~5MB**可达 GB 级**
**用途**AI 生成代码片段、轻量沙盒重计算、CLI 工具、现有应用迁移
**费用**$0.002/Worker/天按运行时间计费

简单规则

💻 核心 API


import { Container, getContainer } from "@cloudflare/containers";

// 定义容器
export class CodeExecutor extends Container {
  defaultPort = 8080;      // 容器监听端口
  sleepAfter = "1m";       // 1分钟无请求自动休眠
}

// Worker 路由请求到容器
export default {
  async fetch(request, env) {
    const { sessionId } = await request.json();
    // 每个 sessionId 对应一个独立容器实例
    const container = getContainer(env.CODE_EXECUTOR, sessionId);
    return container.fetch(request);
  },
};

部署:wrangler deploy — 自动构建镜像、推送到 CF Registry、全球预分发、部署 Worker。

🏗️ 架构:Worker + Durable Object + Container


用户请求 → [Worker] → [Durable Object] → [Container VM]
           (路由/认证)  (生命周期管理)    (实际计算)

Worker 的三种角色

角色功能
**API Gateway**路由、认证、缓存、限流
**Service Mesh**容器间私有连接、加密通信
**Orchestrator**自定义调度、扩展、健康检查

Durable Object 作为可编程 Sidecar

每个容器实例关联一个 Durable Object,提供:


// 手动控制容器
this.ctx.container.start({ entrypoint, env: envVars });
this.ctx.container.signal(15);  // SIGTERM
this.ctx.container.exec(["./backup"]);  // 执行命令

// 监控容器状态
this.ctx.container.monitor()
  .then(onContainerExit)
  .catch(onContainerError);

// 在容器退出时保存状态
async onContainerExit() {
  const state = await this.ctx.container
    .getTcpPort(8080)
    .fetch('http://container/state');
  this.ctx.storage.sql.exec('UPDATE state SET value = ?', state);
}

🌍 生命周期

1. 部署:镜像上传到 CF Registry → 全球 300+ 节点预分发

2. 首次请求:Worker → DO → 找最近有预热镜像的节点 → 启动容器(2-3 秒冷启动)

3. 后续请求:路由到同一容器实例(无论请求从哪来)

4. 休眠sleepAfter 时间到 → 发 SIGTERM → 15 分钟后 SIGKILL

5. 重启:下次请求到来时,在最近节点重新启动(位置可能变化)

🔒 网络安全

特性说明
默认私有容器只能通过 Worker 访问
可断网`enableInternet: false`,所有出站走 Worker
端到端加密Worker ↔ Container 自动加密
凭证注入Worker 在出站时加 auth header,容器碰不到密钥
仅 HTTP 入站不支持直接 TCP/UDP(安全限制)

📦 实际用例

1. AI 代码沙盒(有状态)

每个用户一个容器,执行 LLM 生成的代码:


// LLM 生成代码
const code = await env.AI.run("@cf/meta/llama-4-scout", { messages });
// 路由到用户专属容器
const sandbox = getContainer(env.CODE_EXECUTOR, sessionId);
return sandbox.fetch("/execute-code", { method: "POST", body: code });

2. FFmpeg 全球部署(无状态)

视频转 GIF,自动扩缩容:


"autoscaling": {
  "minimum_instances": 1,
  "cpu_target": 75,  // CPU 超 75% 自动扩容
}

3. CI/CD(短任务 + Workflows)

容器跑构建 → 完成后发消息到 Queue → Workflow 确保可靠执行

💰 定价详情

实例规格

类型vCPU内存磁盘
lite1/16256 MiB2 GB
basic1/41 GiB4 GB
standard-11/24 GiB8 GB
standard-216 GiB12 GB
standard-328 GiB16 GB
standard-4412 GiB20 GB

计费规则

资源免费额度超出单价
内存25 GiB-h/月$0.0000025/GiB-s
CPU375 vCPU-min/月$0.000020/vCPU-s
磁盘200 GB-h/月$0.00000007/GB-s
出站流量(北美/欧洲)1 TB/月$0.025/GB

跑 OpenClaw 可行吗?

能跑,但不值得。 用 basic 实例(1/4C 1GB)24/7 常驻:

项目月费
内存(1 GiB × 720h)~$6.26
CPU(估计 50 vCPU-min/天)~$1.35
磁盘(4 GB × 720h)~$0.68
Workers Paid 底费$5.00
**合计****~$13.29**

对比 DigitalOcean VPS($6/月,1C 2GB,完整 Linux,持久化磁盘):贵一倍、规格更差、还没持久化磁盘

致命问题:

结论:CF Container 适合"按需启动、跑完就关"的场景,不适合跑常驻 daemon。

⚠️ 当前限制

限制说明
磁盘临时重启后清空(持久化磁盘未来计划)
仅 linux/amd64不支持 ARM
仅 HTTP 入站不支持直接 TCP/UDP
冷启动 2-3 秒比 Dynamic Worker 慢 1000 倍
Beta功能和定价可能变化

💡 与我们的关联

1. OpenClaw 的完整部署方案

结合刚研究的 Dynamic Workers,Cloudflare 现在提供了完整的 Agent 执行栈

技术用途
轻量代码执行Dynamic WorkersAgent 写 JS 片段
重量级计算**Containers**跑模型/CLI/编译
路由+编排WorkersAPI Gateway
状态管理Durable ObjectsSession 状态
存储R2 + D1 + KV文件/数据/缓存

如果把 OpenClaw Gateway 容器化部署到 Cloudflare Containers:

2. 和 Dynamic Workers 报告的互补

上一篇报告说"Worker 没有文件系统"——Container 填了这个坑。Agent 可以:

3. AI 代码执行的两层沙盒


Agent 生成代码
  ├→ JS 片段 → Dynamic Worker(5ms,$0.002)
  └→ Python/Shell 脚本 → Container(2-3s,按时间计费)

4. ub2 的替代方案?

如果 ub2 上跑的任务(比如 ffmpeg 转码、模型推理准备)不需要 GPU,可以考虑迁移到 Cloudflare Containers——全球部署、自动扩缩、无需运维。但 GPU 任务(Ollama/模型推理)仍然需要 ub2。

📊 评分

维度评分(/10)
技术设计9.0 — Worker + DO + Container 三层架构优雅
实用性8.5 — 一条命令全球部署,API 简洁
与 Dynamic Workers 互补9.0 — 轻量 + 重量级完美配对
与我们的关联7.5 — temp.jaylab.io 在 CF 上,但当前不需要容器
成熟度7.5 — Beta 阶段,有些限制(临时磁盘、仅 HTTP)
**综合****8.5**

报告由深度研究助手自动生成 | 2026-03-27

来源: Cloudflare Docs / Blog