daytonaio/daytona · 上手攻略

  • 仓库:daytonaio/daytona
  • 链接:https://github.com/daytonaio/daytona
  • 分类:ai
  • 作者:Tom
  • 更新:2026-07-10

⚠️ 重要声明:仓库已停止维护

截至 2026 年 6 月,Daytona 核心开发已迁移至私有代码库,本仓库不再更新。 仓库仍公开可用,许可证(MIT)允许自由使用和 fork,但不再有官方支持和版本更新。如果你正在评估此类工具,请关注其商业产品或寻找活跃的替代项目。


这是什么

Daytona 是一个用于运行 AI 生成代码的安全、弹性基础设施运行时。它的核心抽象是 Sandbox(沙盒)——每一个 Sandbox 是一个完全隔离的"可组合计算机",拥有独立内核、文件系统、网络栈,以及分配的 vCPU、RAM 和磁盘。AI Agent 或开发者可以通过 SDK(Python/TypeScript/Go/Java/Ruby)、CLI 或 REST API 编程式地管理这些沙盒,在其中执行代码、安装依赖、运行服务。

解决的问题:AI 生成代码的执行存在安全风险(隔离性)和状态持久性问题。传统 Docker 容器启动较慢(秒级),且缺乏专门为 AI Agent 设计的状态快照和 MCP 集成能力。Daytona 的沙盒可在 90ms 内从代码到执行就绪,并支持状态持久化。


快速安装

⚠️ 注意:本仓库已停止维护,以下内容基于 2026 年 6 月停止更新前的版本验证。安装前请确认版本仍可用。

Python SDK

pip install daytona

TypeScript SDK

npm install @daytona/sdk

Go SDK

go get github.com/daytonaio/daytona/libs/sdk-go

CLI(需要先安装 SDK)

# 安装 daytona CLI(Linux/macOS)
curl -fsSL https://download.daytona.io/daytona-cli/install.sh | sh

# 验证安装
daytona version

Docker(自托管沙盒运行时)

Daytona 也支持 Docker 方式自托管 compute plane,详见官方文档:https://www.daytona.io/docs/installation/


核心用法

1. 创建沙盒(Python 示例)

from daytona import Daytona

daytona = Daytona()
sandbox = daytona.create()

print(f"Sandbox ID: {sandbox.id}")
print(f"Sandbox IP: {sandbox.ip}")

2. 从快照创建(预配置环境)

from daytona import Daytona, CreateSandboxFromSnapshotParams

daytona = Daytona()
sandbox = daytona.create(
    CreateSandboxFromSnapshotParams(
        snapshot="daytona-small"  # 1 vCPU, 1GiB RAM, 3GiB Disk
    )
)

可用快照类型: - daytona-small — 1 vCPU / 1GiB RAM / 3GiB(容器类型) - daytona-medium — 2 vCPU / 4GiB RAM / 8GiB - daytona-large — 4 vCPU / 8GiB RAM / 10GiB - daytona-gpu — 1 vCPU / 1GiB RAM + 1 GPU - daytona-vm-small/medium/large — Linux VM 类型

3. 指定自定义镜像和资源

from daytona import Daytona, CreateSandboxFromImageParams, Image, Resources

daytona = Daytona()
sandbox = daytona.create(
    CreateSandboxFromImageParams(
        image="ubuntu:22.04",
        resources=Resources(cpu=2, memory=4, disk=8),  # vCPU/GiB
    )
)

4. 在沙盒中执行代码

# 执行 Python 代码
result = sandbox.run("print('Hello from sandbox')")
print(result.output)

# 执行 Shell 命令
result = sandbox.exec(["bash", "-c", "ls -la /app"])

5. 文件系统操作

# 上传文件到沙盒
sandbox.write_file("/app/app.py", open("app.py", "rb").read())

# 读取文件
content = sandbox.read_file("/app/app.py")

# 列出目录
files = sandbox.list_dir("/app")

6. 创建快照(保存环境状态)

snapshot = sandbox.create_snapshot(name="my-env-001")
print(f"Snapshot created: {snapshot.id}")

7. MCP 服务器集成

Daytona 提供 MCP(Model Context Protocol)服务器,适合与 AI Agent 框架(如 LangChain、AutoGPT 等)集成:

# 启动 MCP 服务器
from daytona import MCPServer
mcp = daytona.create_mcp_server(sandbox_id=sandbox.id)
print(f"MCP server: {mcp.url}")

8. 通过 CLI 管理

# 登录
daytona login

# 列出沙盒
daytona sandbox list

# 创建沙盒
daytona sandbox create --snapshot daytona-small

# SSH 进入沙盒
daytona sandbox ssh <sandbox-id>

# 删除沙盒
daytona sandbox delete <sandbox-id>

典型适用场景

场景 说明
AI Agent 代码执行 为 Agent 提供安全隔离的代码执行环境,防止恶意代码影响宿主机
开发环境标准化 团队共享预配置的开发容器,一键启动一致环境
CI/CD 测试隔离 每个测试用例在独立沙盒运行,完全隔离,互不影响
临时计算任务 按需启动沙盒,执行完即销毁,适合短期数据分析、模型推理等
多租户 SaaS 为每个用户提供独立隔离的执行环境,提升安全性

坑与注意

  1. ⚠️ 仓库停止维护:核心代码库已私有化,不继续发布新版本。生产环境中使用需自行承担维护风险,或考虑迁移到其他活跃的沙盒项目(如 Firecracker、CodeServer 等)。
  2. 网络隔离限制:沙盒默认有独立网络栈,但某些云服务商的网络配置可能与 Daytona 的 OCI 运行时存在兼容性问题,务必在测试环境验证。
  3. 资源配额:组织级账户最大支持 4 vCPU / 8GB RAM / 10GB Disk,超出需付费升级(具体价格见官方 pricing 页面)。
  4. 冷启动延迟:虽然宣传 90ms 启动,但在高并发场景下(数百个沙盒同时创建),compute plane 的调度延迟可能达到秒级。
  5. 快照存储成本:快照会持久化整个文件系统状态,快照数量增多后存储成本不可忽视,建议定期清理不需要的快照。

与同类对比

特性 Daytona Firecracker Docker容器 CodeServer
启动速度 ~90ms ~125ms 1-5s 5-10s
隔离级别 VM级 VM级 容器级 进程级
状态持久化 原生快照 需要额外配置 卷挂载 只读文件系统
MCP 集成 ✅ 原生
Agent SDK 多语言官方SDK
开源状态 ⚠️ 停止维护 ✅ 活跃 ✅ 活跃 ✅ 活跃
适用场景 AI Agent 微服务安全隔离 通用容器化 浏览器IDE

一句话推荐结论

Daytona 的沙盒抽象为 AI Agent 提供了开箱即用的安全执行环境,90ms 启动 + 快照持久化非常适合 Agent 工作流——但请务必注意仓库已停止维护,生产使用前需评估长期维护策略。


参考来源

  • GitHub README:https://github.com/daytonaio/daytona
  • 官方文档:https://www.daytona.io/docs
  • Sandboxes 文档:https://www.daytona.io/docs/sandboxes/
  • SDK 安装(pip/npm/go):https://www.daytona.io/docs/#3-install-the-sdk
  • ⚠️ 停止维护公告:https://github.com/daytonaio/daytona(README 头部)