Docker沙箱入门工具
面向个人开发者的Docker安全沙箱工具。提供隔离的容器运行环境, 支持资源限制、网络隔离与文件系统隔离。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。
SKILL.md
功能说明: 本技能涵盖 中文交互、化工作流场景 等核心能力。
Docker沙箱入门工具(免费版)
概述
本工具为个人开发者提供Docker安全沙箱能力。通过容器隔离技术,创建安全的运行环境,支持资源限制、网络隔离和文件系统保护。适合安全地运行不信任代码、测试新镜像和进行开发实验。
核心能力
沙箱功能
| 功能 | 说明 | 免费版支持 |
|---|---|---|
| 容器隔离 | 独立命名空间 | 支持 |
| CPU限制 | CPU配额限制 | 支持 |
| 内存限制 | 内存上限设置 | 支持 |
| 网络隔离 | 无网络/受限 | 支持 |
| 文件系统 | 只读/临时文件系统 | 支持 |
| 多沙箱 | 多实例管理 | 不支持 |
| 快照 | 状态保存恢复 | 不支持 |
| 高级策略 | 自定义安全策略 | 不支持 |
输出: 返回沙箱功能的执行结果,包含操作状态和输出数据。
安全隔离层级
| 层级 | 隔离内容 | 说明 |
|---|---|---|
| 进程隔离 | PID命名空间 | 沙箱内进程互不可见 |
| 网络隔离 | 网络命名空间 | 独立网络栈 |
| 文件隔离 | 挂载命名空间 | 独立文件系统视图 |
| 用户隔离 | 用户命名空间 | root映射为非特权 |
| 资源隔离 | cgroups | CPU/内存/IO限制 |
输出: 返回安全隔离层级的执行结果,包含操作状态和输出数据。
核心功能执行
用input_params参数进行配置。
输出: 返回核心功能执行的执行结果,包含操作状态和输出数据。
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:Docker、安全沙箱环境、支持隔离运行与基、础资源限制、适合代码测试、面向个人开发者的、安全沙箱工具、提供隔离的容器运、行环境、支持资源限制、网络隔离与文件系、统隔离、Use、when、需要代码生成、编程辅助、调试测试、开发部署时使用、不适用于无明确技、术栈的模糊需求、适用于独立开发者、企业团队和自动化、工作流场景等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
使用场景
场景一:安全运行不信任代码
用户输入:"在沙箱里运行这个不信任的脚本"
# 创建安全沙箱运行
python3 scripts/sandbox.py run \
--image python:3.11-slim \
--script ./untrusted.py \
--no-network \
--memory 256m \
--cpu 0.5 \
--read-only \
--timeout 60
# 沙箱自动执行并在超时后清理
场景二:测试新镜像
用户输入:"安全地测试这个新构建的镜像"
# 沙箱测试镜像
--image my-app:test \
--network restricted \
--memory 512m \
--command "npm test"
场景三:开发实验环境
用户输入:"创建一个隔离的实验环境"
# 创建实验沙箱
--image ubuntu:22.04 \
--name experiment \
--network none \
--memory 1g \
--cpu 1.0 \
--volume /tmp/sandbox:/data:rw
# 进入沙箱
py exec --name experiment
快速开始
- 阅读## 核心能力章节了解skill功能
- 按## 依赖说明配置环境
- 执行所需能力对应的命令
- 参考## 错误处理章节处理异常
- 查看## FAQ解答常见疑问
环境准备
# 依赖说明
# 见docker-toolkit安装说明
# 安装Python依赖
pip install docker
# 验证
常用命令
# 创建沙箱
py create --image ubuntu:22.04 --name test --network none
# 运行脚本
py run --image python:3.11 --script ./test.py --no-network --timeout 60
# 测试镜像
py test-image --image my-app:test --command "npm test"
# 列出沙箱
# 清理沙箱
py cleanup --name test
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
示例
沙箱安全配置
sandbox_config:
defaults:
network: "none" # none | restricted | bridge
memory_limit: "256m"
cpu_limit: 0.5
read_only: true
tmpfs_size: "64m"
timeout: 60 # 默认超时(秒)
user: "nobody" # 非特权用户
security:
no_new_privileges: true # 禁止提权
cap_drop: ["ALL"] # 删除所有capabilities
cap_add: [] # 不添加任何capability
seccomp: "default" # 安全计算模式
cleanup:
auto_cleanup: true # 超时后自动清理
cleanup_on_exit: true # 退出后清理
优选实践
- 最小权限:删除所有capabilities,仅添加必要的
- 资源限制:始终设置CPU和内存限制,防止资源耗尽
- 网络隔离:不信任代码使用none网络模式
- 超时设置:设置合理超时,避免长时间运行
| 实践要点 | 说明 |
|---|---|
| 只读文件系统 | 配合tmpfs使用,防止写入持久化 |
| 用户隔离 | 使用非特权用户运行 |
| 自动清理 | 超时后自动删除沙箱 |
| 日志记录 | 记录沙箱内活动用于审计 |
常见问题
Q1:沙箱安全性如何?
Docker沙箱提供进程、网络、文件系统层面的隔离,能防止大部分常规攻击。但对于内核漏洞等高级威胁无法完全防护。高度敏感场景建议使用专用虚拟机。
Q2:免费版支持多沙箱吗?
免费版支持创建沙箱但不支持批量管理。如需管理多个沙箱实例,建议升级PRO版。
Q3:沙箱内的数据会丢失吗?
是的。沙箱默认使用临时文件系统,容器删除后数据丢失。需要持久化的数据需挂载外部卷(不推荐用于不信任代码)。
Q4:可以运行GUI应用吗?
免费版主要支持命令行应用。运行GUI应用需要额外的X11转发配置,建议升级PRO版获取完整支持。
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Linux(推荐) / macOS(有限支持)
- Python版本: 3.8+
- Docker: 20.0+
第三方依赖
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| Python | 运行时 | 必需 | 系统安装或conda环境 |
| docker | Python库 | 必需 | pip install docker |
API Key 配置
- 免费版无需API Key
- 所有操作通过本地Docker守护进程执行
可用性分类
- 分类: MD+EXEC(Markdown指令+Python脚本+Docker执行)
- 说明: 基于Docker的安全沙箱环境
- 免费版限制: 基础隔离、不支持多沙箱管理与快照
- 安全声明: 沙箱提供基础隔离,不保证完全安全,高度敏感场景请使用专用虚拟机
错误处理
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
已知限制
- 需LLM支持,无LLM环境不可用
- 复杂业务场景建议结合人工经验判断
- 执行效率受模型能力与网络环境影响
安全注意事项
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量配置,禁止硬编码到代码或配置文件中 |
| 命令执行风险 | 仅执行白名单命令,避免拼接用户输入到命令行参数中 |
| 网络通信安全 | 使用HTTPS协议,验证SSL证书有效性 |
| 敏感数据暴露 | 输出结果中不包含密钥、令牌等敏感信息 |
使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。
核心功能
- 自动化执行: 基于指令驱动的自动化流程
- 文件处理: 支持多种文件格式的读取、解析和写入操作
- API集成: 通过标准化接口调用外部服务并处理响应
- 命令执行: 在安全沙箱中执行系统命令并收集结果
- 信息检索: 快速搜索和过滤目标数据
核心功能
- 自动化执行: 基于指令驱动的自动化流程
- 文件处理: 支持多种文件格式的读取、解析和写入操作
- API集成: 通过标准化接口调用外部服务并处理响应
- 命令执行: 在安全沙箱中执行系统命令并收集结果
- 信息检索: 快速搜索和过滤目标数据
评论与讨论
还没有评论,分享你的体验吧。