| 说明 | 管理沙箱端口发布 |
| 用法 | sbx ports SANDBOX [flags] |
描述
管理沙箱端口发布。
列出、发布或取消发布沙箱端口。发布本地端口会先启动已停止的沙箱, 然后再创建宿主机绑定。不带 --publish 或 --unpublish flag 时,列出所有已发布的端口。
端口规格格式:[[HOST_IP:]HOST_PORT:]SANDBOX_PORT[/PROTOCOL] 发布时不带 HOST_PORT,会自动分配一个临时端口。 省略 HOST_IP 时,端口绑定在回环地址上,并按 PROTOCOL 和沙箱的地址族进行扩展:tcp/udp 同时绑定 127.0.0.1 和 ::1(如果沙箱只有 IPv4,则只绑定 127.0.0.1);tcp4/udp4 只 绑定 127.0.0.1;tcp6/udp6 只绑定 ::1。 支持的协议:tcp、tcp4、tcp6、udp、udp4、udp6。
发布时不带 PROTOCOL,会使用 tcp4——这样只监听 IPv4 的沙箱服务 无需宿主机客户端避开 ::1 即可访问——但当 HOST_IP 是 IPv6 地址时 则使用 tcp6。显式发布 tcp 可同时绑定两个地址族。
取消发布时不带 HOST_PORT,会从所有宿主机端口中移除匹配 HOST_IP 和 PROTOCOL 的映射。
取消发布时不带 PROTOCOL 时,无论该映射当初是用同样的默认值发布的, 还是作为双栈 tcp 发布的,都会被移除。要移除 tcp6 或 udp 映射, 请指明协议;残留的项会被报告。
使用 --cloud: 管理云端沙箱对外暴露的端口。
列出、发布或取消发布云端沙箱的端口,云端沙箱由 ID(sbx_*)或 名称指定。不带 --publish 或 --unpublish flag 时,列出对外暴露的端口。
端口可以只写沙箱端口号,也可以带 /tcp 后缀;UDP 和宿主机绑定 会被拒绝。云端控制平面会为每个对外暴露的端口分配一个公网可达的 URL。
选项
| 选项 | 默认值 | 说明 |
|---|---|---|
--format | 输出格式:table、json 或 yaml | |
--json | 以 JSON 格式输出 | |
-p, --publish | 发布一个端口(可重复):[[HOST_IP:]HOST_PORT:]SANDBOX_PORT[/PROTOCOL](本地)或 SANDBOX_PORT[/tcp](云端) | |
--unpublish | 取消发布端口(可重复传入):[[HOST_IP:]HOST_PORT:]SANDBOX_PORT[/PROTOCOL](本地)或 SANDBOX_PORT[/tcp](云端) |
全局选项
| 选项 | 默认值 | 说明 |
|---|---|---|
--cloud | 改为调用 Docker Cloud Sandboxes API,而不是本地 sandboxd(支持的动词正在逐步增加,运行 sbx --cloud --help 查看当前列表) | |
-D, --debug | 启用调试日志 | |
--no-input | 从不提示;需要应答的命令会直接失败,并给出应当运行的命令 |
示例
# 列出已发布的端口
sbx ports my-sandbox
# 把沙箱端口 8080 发布到一个临时宿主机端口
sbx ports my-sandbox --publish 8080
# 使用指定的宿主机端口发布
sbx ports my-sandbox --publish 3000:8080
# 取消发布一个端口
sbx ports my-sandbox --unpublish 3000:8080
# 在云端沙箱上暴露端口 8080
sbx --cloud ports sbx_abc123 --publish 8080
# 从云端沙箱移除一个对外暴露的端口
sbx --cloud ports sbx_abc123 --unpublish 8080参见
sbx— 管理 AI 编程智能体沙箱。