跳转到内容
搜索文档

容器

最后更新 查看 MarkdownAgent 设置

使用无服务器容器增强您的 Workers

Available on Workers Paid plan

运行以任何编程语言编写、为任何运行时构建的代码,作为基于 Workers 构建的应用程序的一部分。

将您的容器镜像部署到 Region:Earth,而无需担心管理基础设施——只需定义您的 Worker 并执行 wrangler deploy

使用容器,您可以运行:

  • 需要并行运行 CPU 核心、大量内存或磁盘空间的资源密集型应用程序
  • 需要完整文件系统、特定运行时或类 Linux 环境的应用程序和库
  • 已作为容器镜像分发的现有应用程序和工具

容器实例按需启动,并由您在 Worker 中编写的代码控制。无需串联 API 调用或编写 Kubernetes operators,您只需编写 JavaScript:

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

export class MyContainer extends Container {
	defaultPort = 4000; // 容器侦听的端口
	sleepAfter = "10m"; // 如果10分钟内没有发送请求,则停止实例
}

export default {
	async fetch(request, env) {
		const { "session-id": sessionId } = await request.json();
		// 获取给定会话 ID 的容器实例
		const containerInstance = getContainer(env.MY_CONTAINER, sessionId);
		// 将请求传递到容器实例的默认端口
		return containerInstance.fetch(request);
	},
};
{
	"name": "container-starter",
	"main": "src/index.js",
	// Set this to today's date
	"compatibility_date": "2026-08-17",
	"containers": [
		{
			"class_name": "MyContainer",
			"image": "./Dockerfile",
			"max_instances": 5
		}
	],
	"durable_objects": {
		"bindings": [
			{
				"class_name": "MyContainer",
				"name": "MY_CONTAINER"
			}
		]
	},
	"migrations": [
		{
			"new_sqlite_classes": ["MyContainer"],
			"tag": "v1"
		}
	]
}
name = "container-starter"
main = "src/index.js"
# Set this to today's date
compatibility_date = "2026-08-17"

[[containers]]
class_name = "MyContainer"
image = "./Dockerfile"
max_instances = 5

[[durable_objects.bindings]]
class_name = "MyContainer"
name = "MY_CONTAINER"

[[migrations]]
new_sqlite_classes = [ "MyContainer" ]
tag = "v1"

开始使用

容器仪表板


后续步骤

部署您的第一个容器

构建并推送镜像,从 Worker 调用容器,并了解扩展和路由。

容器示例

查看如何将容器与 Worker 结合使用的示例,包括无状态和有状态路由、区域放置、Workflow 和 Queue 集成、AI 生成的代码执行以及短期工作负载。


更多资源

Wrangler

了解有关使用 Wrangler 开发、构建和推送镜像以及部署容器的命令的更多信息。

限制

了解容器的限制以及如何在这些限制内工作。

SSH

通过 Wrangler 使用 SSH 连接到正在运行的容器实例。

容器 Discord

在 Discord 上与容器的其他用户建立联系。提出问题、展示您正在构建的内容,并与其他开发人员讨论该平台。

这篇文档对您有帮助吗?