Docker Sandbox Lucas

Docker Sandbox Lucas

创建并管理 Docker 沙箱虚拟机环境以安全执行代理。适用于运行不受信任代码、探索包或隔离代理工作负载。支持 Claude、Codex、Copilot、Gemini 和 Kiro 代理,并提供网络代理控制。

发布时间:2026.05.27

立即使用

产品介绍

Docker Sandbox

使用 Docker Desktop 的 sandbox 功能,在隔离的虚拟机环境中运行 agent 和命令。每个 sandbox 都拥有独立的轻量级虚拟机,具备文件系统隔离、网络代理控制,以及通过 virtiofs 挂载工作区的能力。

使用场景

  • 在全局安装前,安全探索不受信任的软件包或技能(skills)
  • 安全地运行来自外部来源的任意代码
  • 执行破坏性操作(如格式化、删除、重写等),避免影响宿主机
  • 隔离需要精细网络访问控制的 agent 工作负载
  • 为实验搭建可复现的环境

前置要求

  • Docker Desktop 4.49+,且已安装 docker sandbox 插件
  • 验证安装:docker sandbox version

快速上手

为当前项目创建 sandbox

docker sandbox create --name my-sandbox claude .

该命令将创建一个基于虚拟机隔离的 sandbox,包含以下特性:

  • 当前目录通过 virtiofs 挂载至 sandbox
  • 预装 Node.js、git 及标准开发工具
  • 配备支持域名白名单控制的网络代理

在 sandbox 内执行命令

docker sandbox exec my-sandbox node --version
docker sandbox exec my-sandbox npm install -g some-package
docker sandbox exec -w /path/to/workspace my-sandbox bash -c "ls -la"

直接运行 agent

# 创建并运行一步完成
docker sandbox run claude . -- -p "这个项目中有哪些文件?"

# 在 `--` 后传入 agent 特定参数
docker sandbox run my-sandbox -- -p "分析此代码库"

命令参考

生命周期管理

# 创建 sandbox(支持的 agent:claude、codex、copilot、gemini、kiro、cagent)
docker sandbox create --name# 在 sandbox 中运行 agent(如 sandbox 不存在则自动创建)
docker sandbox run[--...]
docker sandbox run[--...]

# 执行任意命令
docker sandbox exec [options][args...]
  -e KEY=VAL          # 设置环境变量
  -w /path            # 指定工作目录
  -d                  # 后台运行(detach)
  -i                  # 交互模式(保持 stdin 打开)
  -t                  # 分配伪终端(pseudo-TTY)

# 停止 sandbox(不销毁 VM)
docker sandbox stop# 删除 sandbox(彻底销毁 VM)
docker sandbox rm# 列出所有 sandbox
docker sandbox ls

# 重置全部 sandbox 状态
docker sandbox reset

# 将当前 sandbox 保存为可复用模板
docker sandbox save

网络控制

sandbox 内置网络代理,用于精细化管控出站请求。

# 允许特定域名访问
docker sandbox network proxy--allow-host example.com
docker sandbox network proxy--allow-host api.github.com

# 屏蔽特定域名
docker sandbox network proxy--block-host malicious.com

# 屏蔽 IP 地址段(CIDR 格式)
docker sandbox network proxy--block-cidr 10.0.0.0/8

# 对特定主机绕过代理(直连)
docker sandbox network proxy--bypass-host localhost

# 设置默认策略(允许或拒绝全部流量)
docker sandbox network proxy--policy deny  # 默认拒绝一切,再按需白名单放行
docker sandbox network proxy--policy allow  # 默认允许一切,再按需黑名单屏蔽

# 查看网络活动日志
docker sandbox network log

自定义模板

# 使用自定义容器镜像作为基础镜像
docker sandbox create --template my-custom-image:latest claude .

# 将当前 sandbox 状态保存为可复用模板
docker sandbox save my-sandbox

工作区挂载

宿主机上的工作区路径通过 virtiofs 挂载进 sandbox,sandbox 内路径结构与宿主机一致:

宿主机操作系统 宿主机路径 Sandbox 内路径
Windows H:\Projects\my-app /h/Projects/my-app
macOS /Users/me/projects/my-app /Users/me/projects/my-app
Linux /home/me/projects/my-app /home/me/projects/my-app

agent 的主目录为 /home/agent/,其中 workspace/ 是指向挂载工作区的符号链接。

Sandbox 内部环境

每个 sandbox 虚拟机预装以下组件:

  • Node.js(v20.x LTS)
  • Git(最新版)
  • Python(系统自带版本)
  • curlwget 及其他标准 Linux 工具
  • npm(全局安装目录为 /usr/local/share/npm-global/
  • Docker socket(位于 /run/docker.sock,支持 Docker-in-Docker)

代理配置(自动设置)

HTTP_PROXY=http://host.docker.internal:3128
HTTPS_PROXY=http://host.docker.internal:3128
NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/proxy-ca.crt
SSL_CERT_FILE=/usr/local/share/ca-certificates/proxy-ca.crt

重要提示:Node.js 的 fetch(基于 undici)默认不遵守 HTTP_PROXY 环境变量。若 npm 包内部使用 fetch 发起请求,需通过 require hook 显式注入代理:

// /tmp/proxy-fix.js
const proxy = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;
if (proxy) {
  const { ProxyAgent } = require('undici');
  const agent = new ProxyAgent(proxy);
  const origFetch = globalThis.fetch;
  globalThis.fetch = function(url, opts = {}) {
    return origFetch(url, { ...opts, dispatcher: agent });
  };
}

使用方式:node -r /tmp/proxy-fix.js your-script.js

实践模式

安全探索第三方包

# 创建隔离 sandbox
docker sandbox create --name pkg-test claude .

# 限制网络仅允许访问 npm registry
docker sandbox network proxy pkg-test --policy deny
docker sandbox network proxy pkg-test --allow-host registry.npmjs.org
docker sandbox network proxy pkg-test --allow-host api.npmjs.org

# 安装并检查可疑包
docker sandbox exec pkg-test npm install -g suspicious-package
docker sandbox exec pkg-test bash -c "find /usr/local/share/npm-global/lib/node_modules/suspicious-package -name '*.js' | head -20"

# 检查是否存在 postinstall 脚本、外连行为、敏感文件访问
docker sandbox network log pkg-test

# 清理
docker sandbox rm pkg-test

持久化开发环境

# 一次性创建
docker sandbox create --name dev claude ~/projects/my-app

# 跨会话复用
docker sandbox exec dev npm test
docker sandbox exec dev npm run build

# 保存为团队共享模板
docker sandbox save dev

严格受限的 Agent 执行

# 默认拒绝全部网络访问,仅开放必要出口
docker sandbox create --name secure claude .
docker sandbox network proxy secure --policy deny
docker sandbox network proxy secure --allow-host api.openai.com
docker sandbox network proxy secure --allow-host github.com

# 在严格限制下运行 agent
docker sandbox run secure -- -p "审查此代码是否存在安全问题"

故障排查

“client version X is too old”

请升级 Docker Desktop 至 4.49+。sandbox 插件依赖 Engine API v1.44+。

sandbox 内 “fetch failed”

Node.js fetch 不使用系统代理。请使用上方 proxy-fix.js require hook,或改用 curl

docker sandbox exec my-sandbox curl -sL https://api.example.com/data

Windows 下路径转换问题(Git Bash / MSYS2)

Git Bash 会将 /path 自动转为 C:/Program Files/Git/path。请在命令前添加环境变量禁用路径转换:

MSYS_NO_PATHCONV=1 docker sandbox exec my-sandbox ls /home/agent

Docker 升级后 sandbox 无法启动

docker sandbox reset  # 清除全部 sandbox 状态

相关专题

更多
火山引擎对象存储使用教程
火山引擎对象存储使用教程

火山引擎对象存储适合用于网站图片、视频文件、备份数据、静态资源和应用附件管理。本专题整理TOS控制台入口、存储桶创建、地域选择、权限设置、文件上传、访问链接生成、CDN加速、费用查看和常见上传或访问失败问题,帮助用户快速掌握对象存储基础操作。

2026.08.04

0

10

火山引擎云服务器使用教程
火山引擎云服务器使用教程

火山引擎云服务器使用教程适合第一次购买、部署和管理云服务器的用户参考。本专题整理控制台入口、实例创建、地域和配置选择、系统镜像设置、安全组放行、远程连接、网站部署、续费计费和常见连接失败问题,帮助用户快速完成云服务器基础使用流程。

2026.08.04

2

10

火山引擎API Key绑定大模型教程
火山引擎API Key绑定大模型教程

火山引擎API Key怎么绑定大模型适合需要在火山方舟、应用后台、脚本工具或AI编程软件中调用模型的开发者参考。本专题整理控制台服务开通、API Key创建、模型权限检查、模型ID选择、Base URL填写、调用测试和鉴权失败排查,帮助用户完成从密钥到模型调用的配置流程。

2026.08.04

2

10

火山引擎API Key获取教程
火山引擎API Key获取教程

火山引擎API Key适合需要调用火山引擎云服务、AI模型、火山方舟接口或其他开放能力的开发者参考。本专题整理控制台入口、账号认证、服务开通、API Key创建、密钥复制保存、权限检查、调用测试和Key无效等常见问题排查。

2026.08.04

6

10

火山引擎API接入教程
火山引擎API接入教程

火山引擎API接入适合需要在应用、脚本、后台服务或AI工具中调用火山引擎能力的开发者参考。本专题整理控制台入口、服务开通、API Key获取、接口地址配置、请求参数填写、调用测试、权限设置、额度查询和常见接口报错排查。

2026.08.04

5

10

火山引擎DeepSeek API调用教程
火山引擎DeepSeek API调用教程

火山引擎DeepSeek API适合需要在应用、脚本、智能体或AI编程工具中调用DeepSeek模型的开发者参考。本专题整理火山引擎控制台入口、模型服务开通、API Key获取、Base URL配置、模型名称填写、调用测试、额度查询和常见接口报错排查。

2026.08.04

2

10

火山引擎控制台操作教程
火山引擎控制台操作教程

火山引擎控制台中常用功能包括API密钥管理、模型调用配置、云资源查看、账单明细、用量统计和权限分配。本专题整理控制台基础操作、服务开通流程、Key创建与保存、费用消耗查看、子账号权限设置和调用失败排查,方便开发者完成日常管理。

2026.08.04

3

10

PDF与PPT格式转换操作方法及在线转换技巧
PDF与PPT格式转换操作方法及在线转换技巧

本专题聚焦 PDF 与 PPT 文件格式转换需求,整理 PDF 转 PPT 在线转换方法、PPT 批量转换 PDF 操作步骤、转换后格式错乱处理以及文档版式检查技巧。通过详细教程帮助用户掌握 PDF、PPT 双向转换方法,解决演示文稿制作、文件整理和办公格式转换中的常见问题,提高办公效率。

2026.07.31

112

6

PDF合并文件操作方法与在线批量合并技巧
PDF合并文件操作方法与在线批量合并技巧

本专题聚焦 PDF 文件合并与文档整理需求,整理多个 PDF 合并成一个文件、图片批量转换 PDF、合同附件合并发送以及在线 PDF 合并操作方法等实用教程。通过详细步骤介绍 PDF 合并流程、文件顺序检查技巧和免费在线合并方案,帮助用户快速整理零散文档,提高办公文件处理效率。

2026.07.31

90

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板