Skip to main content
沙盒功能目前处于私密预览阶段。随着我们的迭代,API 和功能可能会发生变化。注册等待列表以获取访问权限。
快照是一个由 Docker 镜像支持的文件系统捆绑包。它是每个沙盒的必需输入:createSandbox / create_sandbox 总是需要一个快照,可以通过 ID(snapshot_id / snapshotId)或名称(snapshot_name / snapshotName)指定。构建一次快照,然后可以根据需要从中启动任意数量的沙盒。 你也可以从一个正在运行的沙盒中捕获快照——安装包、写入数据文件或配置状态,然后将结果快照并将其作为新的起点重复使用。 沙盒快照页面

从 Docker 镜像构建快照

通过指向任何 Docker 镜像来构建快照。该调用会阻塞直到快照就绪(默认超时为 60 秒;对于大型镜像可以增加超时时间)。

私有注册表

传递注册表凭据(或预先注册的 registry_id / registryId)以从私有注册表拉取镜像。

从正在运行的沙盒捕获快照

从现有快照启动一个沙盒,安装包或准备数据,然后将结果捕获为新的快照。返回的快照会将其 source_sandbox_id 设置为从中捕获的沙盒,并且可以作为任何后续 create_sandbox 调用的 snapshot_id 使用。
捕获仅保留持久文件系统。安装的包(位于 /usr/local/root/opt、主目录等下)以及你写入这些位置的文件会被保留。运行中的进程、打开的套接字、内存状态以及 /tmp 下的任何内容(这是一个 tmpfs)不会被带过来——启动新沙盒并重新启动你需要的进程。
你可以通过名称而不是 ID 从快照启动沙盒——当你知道捕获时使用的人类可读标签时,这很方便:
请恰好传递 snapshot_id / snapshot_name(或 TypeScript 中的 snapshotId / snapshotName)中的一个。

调整捕获时机

capture_snapshot 会阻塞直到新快照就绪。如果你的文件系统很大或存储后端较慢,请增加 timeout 关键字参数(默认 60 秒)。

列出、获取和删除快照

list_snapshots / listSnapshots 在服务器端进行分页(默认每页大小 50,最大 500),并接受可选的过滤器:name_contains / nameContains(名称上的不区分大小写的子字符串)、limit(1–500)和 offset(≥ 0)。通过推进 offset 来翻阅结果。

停止和启动沙盒

沙盒可以停止和重启而不会丢失文件系统状态。你在上次运行期间写入的文件在沙盒重新启动后仍然存在。
你也可以通过客户端直接按名称停止和启动(Python 中为 client.stop_sandbox(name) / client.start_sandbox(name),TypeScript 中为 client.stopSandbox(name) / client.startSandbox(name))。

后续步骤