尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

用Docker沙箱隔离AI Agent:agent-deck安全运行容器化会话部署教程

用Docker沙箱隔离AI Agent:agent-deck安全运行容器化会话部署教程 【免费下载链接】agent-deckTerminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more.项目地址https://gitcode.com/gh_mirrors/ag/agent-deck点击查看免费下载agent-deck 是一款面向 AI 编码 Agent 的终端会话管理器一个 TUI 统一管理 Claude Code、Gemini CLI、OpenCode、Codex 等多个 AI Agent 会话。它内置了Docker 沙箱能力只需一个--sandbox参数或勾选一个复选框就能把 AI Agent 会话跑进隔离容器中——Agent 可以读写你的项目代码却碰不到系统其余部分。本文将带你完成容器化会话的安全部署包括沙箱镜像、凭据共享、资源限制与常见问题排查。为什么要把 AI Agent 放进 Docker 沙箱AI 编码 Agent 天生拥有完整的 shell 执行权而它不受约束的方式正是你的主机系统误删文件、失控的rm -rf、恶意依赖安装、fork 炸弹……都可能直接作用于宿主机。Docker 沙箱的价值在于划定爆炸半径️ Agent 的每次操作都被限制在容器内宿主机系统目录只读保护 项目目录以读写方式挂载到容器的/workspaceAgent 正常工作不受影响 默认不挂载 Docker socket容器内的 Agent 无法反向控制宿主机 Docker 守护进程 会话删除时容器自动清理不留残余状态对于让 Agent 帮我改代码这类场景沙箱是成本最低的保险。三步启用沙箱会话第一步确认 Docker 环境agent-deck 会在会话启动时检测 Docker。它需要两样东西dockerCLI 在 PATH 中且 Docker 守护进程正在运行。若缺失会看到明确的报错docker CLI is not installed or not in PATHdocker daemon is not running; start Docker and try again检测逻辑见 internal/docker/detect.gomacOS / Linux / WSL 均可使用。第二步一键创建沙箱会话命令行方式最简单在项目目录执行agent-deck add --sandbox .在 TUI 中新建会话对话框里勾选 Run in Docker sandbox 复选框即可该选项始终可见Docker 可用性在会话启动时才真正校验。第三步在 config.toml 中设为默认如果你希望所有新会话默认进沙箱编辑$XDG_CONFIG_HOME/agent-deck/config.toml通常为~/.config/agent-deck/config.toml[docker] default_enabled true # 新会话默认勾选沙箱 auto_cleanup true # 会话结束时自动删除容器默认即 trueCLI 参数优先级高于配置文件--sandbox/--sandbox-image始终覆盖[docker]段的默认值。完整配置项参考 skills/agent-deck/references/sandbox.md。官方沙箱镜像里有什么agent-deck 自带一个预置镜像agent-deck-sandbox:latest由 sandbox/Dockerfile 构建基于 Ubuntu 24.04开箱即含组件用途Claude CodeAnthropic 的编码 Agent原生安装器OpenCode开源编码 Agent CLICodex CLIOpenAI 编码 AgentGemini CLIGoogle 编码 AgentNode.js 22.x LTSCodex / Gemini CLI 运行依赖git、ripgrep、fzf、python3 等Agent 工作流常用工具如需自己重建docker build -t agent-deck-sandbox sandbox/安全加固机制六道防线容器创建参数在 internal/docker/docker.go 中硬编码每一条都在缩小 Agent 能造成的破坏--cap-dropALL—— 丢弃全部 Linux capabilities没有chown、net_raw、sys_admin等特权--security-optno-new-privileges—— 禁止通过 setuid 二进制提权--read-only—— 根文件系统只读仅/tmp、工具缓存目录等通过 tmpfs 显式开放--pids-limit4096—— 限制进程数fork 炸弹打不垮宿主机不挂载 Docker socket—— 代码注释中明确写着这是有意为之防止容器逃逸到宿主机挂载路径黑名单—— 用户自定义卷会先解析符号链接再校验/etc、/proc、/sys、Docker socket、~/.aws等敏感路径一律拒绝见 internal/docker/config.go 中的 blocked 列表另外容器以宿主机用户身份运行--user uid:gid而非 root不是 root同步配置文件时还会拒绝指向目录外部的符号链接防止凭据被偷渡出同步边界——细节实现见 internal/docker/sandbox.go。凭据共享容器里不用重新登录沙箱不等于断网裸奔。agent-deck 解决了容器化最大的痛点——认证每次会话启动宿主机的工具配置~/.claude/、~/.codex/、~/.gemini/等会被同步到各工具配置目录下的sandbox/子目录再挂载进容器容器内产生的运行时状态自由写入不会污染宿主机配置多个沙箱容器共享同一套凭据一次登录处处可用⚠️ 唯一例外macOS 上 Claude Code 的登录存在 Keychain 中而 OAuth 刷新令牌是单用途、每次刷新都会轮换的。若复制到容器会分叉宿主机的刷新链导致宿主机被登出。因此 agent-deck 默认不复制它而是让沙箱自己拥有独立登录第一次沙箱会话内执行/login之后凭据保存在~/.claude/sandbox/.credentials.json并被所有容器复用。无值守场景可改用claude setup-token生成的令牌通过environment配置以CLAUDE_CODE_OAUTH_TOKEN传入。自定义镜像与资源限制扩展沙箱镜像项目有特殊依赖如额外 Python 包、数据库客户端时直接基于官方镜像扩展FROM agent-deck-sandbox:latest RUN apt-get update apt-get install -y python3-venv构建后通过agent-deck add --sandbox-image my-sandbox:latest .单会话使用或在配置中设为默认[docker] default_image my-sandbox:latest限制 CPU 与内存[docker] cpu_limit 2.0 # 最多 2 核 memory_limit 4g # 内存上限 4 GB environment [ANTHROPIC_API_KEY, OPENAI_API_KEY] # 透传主机环境变量其他实用项mount_ssh true—— 只读挂载~/.ssh容器内可正常 git 操作volume_ignores [node_modules]—— 大目录不进项目挂载加快启动容器生命周期与日常管理容器命名规则为agent-deck-{会话标题}-{ID前8位}例如agent-deck-my-refactor-a1b2c3d4在docker ps中一眼可辨。完整生命周期创建会话启动时同步配置、创建/启动容器幂等已存在则复用运行宿主机 tmux 会话通过docker exec进入容器执行 Agent CLI排查按E键进入容器内 shell随时查看容器状态清理删除会话时容器自动移除auto_cleanup false可保留容器用于调试常见问题排查容器被 OOM 杀掉macOS 上 Docker 运行在固定内存的 Linux 虚拟机中默认仅 2 GB。在 Docker Desktop 的 Settings Resources Advanced 中调高内存建议 8 GB并可用docker stats --no-stream确认MEM LIMIT列。提示 Docker 不可用确认docker命令在 PATH 中且守护进程已启动WSL 环境下需先启动 WSL 中的 Docker。想重置沙箱状态直接删除对应工具的sandbox/目录即可下次会话启动会自动重建。Web 视图使用终端相关的环境变量TERM、COLORTERM等会自动透传保证渲染正常API 密钥类变量需显式加入environment列表。延伸阅读完整沙箱参考skills/agent-deck/references/sandbox.md全部配置项含[docker]段详解skills/agent-deck/references/config-reference.md容器生命周期源码internal/docker/docker.go沙箱镜像定义sandbox/DockerfileREADME 中 Docker Sandbox 章节README.md给 AI Agent 一个容器它就有了舞台agent-deck 的 Docker 沙箱让放开手脚干活和宿主机安全第一次不必二选一。赞分享【免费下载链接】agent-deckTerminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more.项目地址https://gitcode.com/gh_mirrors/ag/agent-deck点击查看免费下载相关推荐OpenManus DockerSandbox 深度解析用 Docker 容器为 AI Agent 代码执行构建安全隔离沙箱OpenManus DockerSandbox 深度解析用 Docker 容器为 AI Agent 代码执行构建安全隔离沙箱 本文围绕 OpenManus 教人工智能AI 应用AI Agent5分钟快速上手PyMatting从零开始的图像抠图实战教程5分钟快速上手PyMatting从零开始的图像抠图实战教程 想要快速掌握专业的图像抠图技术吗PyMatting是一个强大的Python库专门用于alphaRalph Docker 沙箱执行用 --sandbox docker 将 Claude Code 隔离进容器的完整指南Ralph Docker 沙箱执行用 sandbox docker 将 Claude Code 隔离进容器的完整指南 导读 Ralph 是一个面向 Claud人工智能AI 应用自主智能体CLI开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表