Skip to main content
On this page

Deno CLI 包含了内置命令用于管理你的 Deno Sandbox 实例,允许你从终端创建、控制并与它们交互。

这种集成使 Deno Sandbox 的管理在你现有的 Deno 工作流程中显得自然流畅。

创建你的第一个沙箱 Jump to heading

最简单的入门方法是使用 deno sandbox create。默认情况下,这会创建一个交互式会话沙箱,准备好时会自动打开 SSH 连接:

›_
deno sandbox create

如果你的系统没有可用的 SSH,则会显示连接信息。退出会话时,沙箱会自动清理自身。

在开发工作中,你通常会想把项目文件复制到沙箱里。--copy 选项会上传文件到沙箱内部的 /app 目录:

›_
deno sandbox create --copy ./my-project

你可以在创建时复制多个目录:

›_
deno sandbox create --copy ./src --copy ./config

如果你需要沙箱运行时间超过单次会话,可以用 --timeout 指定超时时间:

›_
deno sandbox create --timeout 2m

你也可以用自定义的内存限制创建沙箱:

›_
deno sandbox create --memory 2gib

若要公开 HTTP 端口以供 Web 应用访问:

›_
deno sandbox create --expose-http 3000

你可以使用 --volume 标志挂载持久卷到沙箱:

›_
deno sandbox create --volume my-volume:/data

创建沙箱并立即运行命令:

›_
deno sandbox create ls /

这在构建和测试项目时非常有用。你可以一条命令复制文件并运行构建流程:

›_
deno sandbox create --copy ./app --cwd /app "npm i && npm start"

对于网页应用,你可以公开端口以访问运行服务:

›_
deno sandbox create --expose-http 3000 --copy ./web-app --cwd /app "npm i && npm run dev"

复杂的工作流可以写成带引号的命令链:

›_
deno sandbox create --copy ./app --cwd /app "npm install && npm test && npm run build"

查看你的 Deno Sandbox Jump to heading

使用 deno sandbox list(或 deno sandbox ls)查看组织中所有的沙箱:

›_
$ deno sandbox list
ID                             CREATED                  REGION   STATUS    UPTIME
sbx_ord_1at5nn58e77rtd11e3k3   2026-01-30 18:33:40.79   ord      running   26.9s
sbx_ord_fwnygdsnszfe5ghafyx8   2026-01-30 18:31:40.90   ord      stopped   5.1s
sbx_ord_4xqcyahb8ye2r5a643de   2026-01-30 18:29:59.10   ord      stopped   9.4s

这显示了每个沙箱的唯一 ID(你用它来配合其他命令),创建时间,区域,当前状态,和运行时长。

远程运行命令 Jump to heading

deno sandbox exec 命令让你在任意运行中的沙箱里执行单条命令,而无需打开交互式会话。非常适合自动化、CI/CD 管道或快速一次性任务:

›_
deno sandbox exec sbx_ord_abc123def456 ls -la

大多数时候,你会想在你所复制文件所在的 /app 目录操作。用 --cwd 指定工作目录:

›_
deno sandbox exec sbx_ord_abc123def456 --cwd /app npm install

用于脚本或自动化时,用 --quiet 抑制命令输出:

›_
deno sandbox exec sbx_ord_abc123def456 --quiet --cwd /app npm test

你也可以通过引号把整条复杂命令链传入:

›_
deno sandbox exec sbx_ord_abc123def456 --cwd /app "npm install && npm test"

exec 命令自然支持 Unix 管道及标准输入/输出。你可以将沙箱命令输出接入本地工具:

›_
deno sandbox exec sbx_ord_abc123def456 'ls -lh /' | wc -l

或将本地数据通过管道输入沙箱进程用于处理:

›_
cat large-dataset.csv | deno sandbox exec sbx_ord_abc123def456 --cwd /app "deno run -A main.ts"

这样方便你将沙箱处理集成至更大规模的 Unix 工作流和数据管道中。

传输文件 Jump to heading

虽然你可以在创建沙箱时复制文件,但后续你可能需要更新或检索文件。deno sandbox copy 命令(也能用 deno sandbox cp)支持双向文件传输:从本机到沙箱,从沙箱到本机,甚至沙箱之间。

将文件从本地复制到沙箱:

›_
deno sandbox copy ./app.js sbx_ord_abc123def456:/app/

从沙箱检索文件到本地:

›_
deno sandbox copy sbx_ord_abc123def456:/app/results.json ./output/

在不同沙箱间复制文件:

›_
deno sandbox copy sbx_ord_abc123def456:/app/data.csv sbx_ord_xyz789uvw012:/app/input/

你可以用通配符从沙箱复制多个文件:

›_
deno sandbox copy sbx_ord_abc123def456:/app/*.json ./config/
deno sandbox copy sbx_ord_abc123def456:/app/logs/*.log ./logs/

还能一次复制多个文件和目录:

›_
deno sandbox copy ./src/ ./package.json sbx_ord_abc123def456:/app/

目标路径可定制,用以在沙箱中合理安排文件:

›_
deno sandbox copy ./frontend sbx_ord_abc123def456:/app/web/

部署沙箱 Jump to heading

你可以使用 deno sandbox deploy 命令,将正在运行的沙箱部署为 Deno Deploy 应用:

›_
deno sandbox deploy sbx_ord_abc123def456 my-app

默认部署到预览版本。若要直接部署到生产:

›_
deno sandbox deploy --prod sbx_ord_abc123def456 my-app

可指定自定义工作目录和入口点:

›_
deno sandbox deploy --cwd /app --entrypoint main.ts sbx_ord_abc123def456 my-app

给入口脚本传递参数:

›_
deno sandbox deploy --args --port 8080 sbx_ord_abc123def456 my-app

管理卷 Jump to heading

沙箱系统支持持久卷,用于存储需要跨沙箱实例保存的数据。使用 deno sandbox volumes 命令进行管理。

创建卷 Jump to heading

创建带有名称、容量及区域的卷:

›_
deno sandbox volumes create my-volume --capacity 10gb --region ord

列出卷 Jump to heading

列出组织内所有卷:

›_
deno sandbox volumes list

你也可以搜索特定的卷:

›_
deno sandbox volumes list my-volume

删除卷 Jump to heading

不再需要某卷时删除它:

›_
deno sandbox volumes delete my-volume

管理快照 Jump to heading

快照是从卷创建的只读镜像。你可以用它们预装软件一次,然后让新沙箱迅速启动并拥有准备好的环境。完整工作流请参考卷与快照

创建快照 Jump to heading

从已有卷创建快照:

›_
deno sandbox snapshots create my-volume my-snapshot

你也可以用 volumes snapshot 命令:

›_
deno sandbox volumes snapshot my-volume my-snapshot

列出快照 Jump to heading

列出组织内所有快照:

›_
$ deno sandbox snapshots list
ID                             SLUG          REGION   ALLOCATED    BOOTABLE
snp_ord_spmbe47dysccpy277ma6   my-snapshot   ord      217.05 MiB   TRUE

可以搜索特定快照:

›_
deno sandbox snapshots list my-snapshot

删除快照 Jump to heading

不再需要快照时删除它:

›_
deno sandbox snapshots delete my-snapshot

切换组织 Jump to heading

deno sandbox switch 命令允许你在配置中切换不同的组织:

›_
deno sandbox switch

这在管理多个组织时非常实用。

交互式访问 Jump to heading

当你需要在沙箱内交互式工作,比如编辑文件、调试问题或探索环境时,可以用 deno sandbox ssh

›_
deno sandbox ssh sbx_ord_abc123def456

这给你一个沙箱内部的完整 Linux shell,可以使用任何命令行工具,用 vim 或 nano 编辑文件,监视进程,安装额外软件等。断开连接后沙箱仍会继续运行,你可以稍后重新连接,或用其他命令远程操作。

管理沙箱超时 Jump to heading

延长沙箱时长 Jump to heading

有时你可能需要更多时间来完成当前沙箱中的工作。deno sandbox extend 命令允许你在不中断正在运行的进程的情况下延长沙箱超时:

›_
deno sandbox extend sbx_ord_abc123def456 30m

extend 命令与沙箱的任何状态无缝配合;无论你是 SSH 登录中、运行远程命令,还是有后台进程,都能保证所有活动连接和进程不中断,同时更新沙箱的过期时间。

清理与终止 Jump to heading

当完成沙箱工作时,使用 deno sandbox kill(或 deno sandbox rm)终止它并释放资源:

›_
deno sandbox kill sbx_ord_abc123def456

这会立即停止沙箱内所有进程并释放资源。务必在终止沙箱前保存所有重要工作,因为沙箱内的所有数据都会丢失。

常见工作流程 Jump to heading

开发与测试 Jump to heading

典型的开发流程是创建一个包含你的代码的沙箱,设置依赖,然后运行测试:

›_
deno sandbox create --copy ./my-app

创建后,使用返回的沙箱 ID 来设置并测试项目:

›_
deno sandbox exec sbx_ord_abc123def456 --cwd /app npm install
deno sandbox exec sbx_ord_abc123def456 --cwd /app npm test

当你在本地有修改时,可以更新沙箱,完成后再取回生成文件:

›_
deno sandbox copy ./src/ sbx_ord_abc123def456:/app/src/
deno sandbox copy sbx_ord_abc123def456:/app/build/ ./dist/
deno sandbox kill sbx_ord_abc123def456

数据处理 Jump to heading

针对需要获取结果的数据处理工作流,结合远程执行和 SSH 访问使用:

›_
SANDBOX_ID=$(deno sandbox create --timeout 20m --copy ./data)
deno sandbox exec $SANDBOX_ID --cwd /app "deno run -A main.ts"

你也可以利用管道直接将数据流输入沙箱进程,适合大数据集或实时处理:

›_
SANDBOX_ID=$(deno sandbox create --timeout 20m --copy ./processing-scripts)
curl -s https://api.example.com/data.json | deno sandbox exec $SANDBOX_ID --cwd /app jq '.items[] | select(.active)'

或者在管道中结合本地和远程处理:

›_
grep "ERROR" /var/log/app.log | deno sandbox exec $SANDBOX_ID --cwd /app "deno run -A main.ts" | sort | uniq -c

要获取结果,复制生成文件回本地,再清理沙箱:

›_
deno sandbox copy $SANDBOX_ID:/app/results/*.csv ./output/
deno sandbox kill $SANDBOX_ID

Last updated on

Did you find what you needed?

编辑此页面
Privacy policy