Container Skill:给 AI 编程 Agent 一个持久隔离的 Docker 工作区

Container Skill:给 AI 编程 Agent 一个持久隔离的 Docker 工作区

AI 编程 Agent(Claude Code、Codex、OpenCode)在你的主机上跑来跑去——读写文件、跑终端、装包,权限给少了用不了,给多了又怕它误删整盘代码。container 就是来解决这个矛盾的:给每个项目建一个持久化的 Docker/Podman 隔离空间,Agent 在里面折腾,项目文件挂载进去,主机 остаётся安全。

功能与原则

Container 提供了一个命令行工具,为每个代码项目创建独立的 Linux 容器工作区,内置主流 AI 编程 Agent(OpenCode、Codex、Claude Code)并持久保存工作状态。它的核心设计原则:

  • 项目级隔离:每个项目有独立容器环境,不污染主机系统
  • 持久化会话:容器状态(含已安装包、对话历史)跨会话保留
  • 一键初始化:一条命令完成 Agent 安装、工具链配置、权限设置
  • 全平台支持:Linux、macOS、Windows(WSL)均可运行

认可度

  • GitHub star:截至 2026-09-06 约 300+ ⭐(aerovato/container)
  • 最近更新:2026-09 初频繁 commit,claudewave.com 显示「<30 天活跃」
  • 安全扫描:skillsllm.com 安全审计通过(0 Critical / 0 High / 0 Medium / 0 Low)
  • 收录情况:同时出现在 linny006/trending-claude-skills(AI coding agent repo 追踪列表)和 claudewave.com(Trust Score 97/100)
  • 许可证:BSD-3-Clause,开源友好

链接

GitHub:https://github.com/aerovato/container

Agent Skill 安装:px skills add aerovato/container --skill container

原作者

aerovato(GitHub @aerovato),独立开发者,专注于 AI 编程工作流基础设施,旗下还有 operator-memory(持久化项目文档)等工具。

介绍

Container 的想法很直接:把 AI Agent 的运行环境 Docker 化,让它在一个干净的 Linux 虚拟机里跑,项目文件夹通过 volume 挂载进去。这样 Agent 可以拥有完整的 root 权限去安装包、跑服务,却影响不到主机文件系统。

具体来说,当你 cd 到一个项目然后运行 container,工具会:
1. 启动(或复用已有)该项目的 Docker 容器
2. 把项目目录挂载进容器的 /root/<project-name>
3. 把 Agent 配置(.claude、.codex、.opencode 等)复制进去
4. 启动交互式终端,Agent 在里面工作

退出后容器不销毁,下次 container 进来,npm 包、Agent 对话历史、配置全部保留。

它的 GitHub README 明确说:不保护 Agent 本身免受 prompt injection 影响——Container 解决的是「防止 Agent 破坏主机」,不是「让 Agent 本身可信」。这个边界说得很清楚。

特点

  • 多 Agent 支持:OpenCode、Codex、Claude Code 开箱即用,支持 Gemini CLI
  • 多容器运行时:支持 Docker 和 Podman,可选
  • 持久化工作状态:npm/pip 包、对话历史、项目配置跨会话保留
  • 灵活定制:可通过 ~/.code-container/Dockerfile.User 添加任意依赖,通过 settings.json 调权限和挂载点
  • 可同时工作:允许多个终端同时连入同一个容器,Agent 和你同时改代码
  • 安全边界清晰:主机文件系统受保护(只读挂载 SSH/Git 配置),Agent 破坏力被限在容器内

使用方法

安装(macOS / Linux):

curl -fsSL https://container.aerovato.com/install.sh | sh

Windows(PowerShell):

irm https://container.aerovato.com/install.ps1 | iex

或通过 npm 全局安装:

npm install -g @aerovato/container

初始化(首次运行):

container init
# 选择 Agent 类型(OpenCode/Codex/Claude Code)
# 选择开发工具、运行时版本
# 等待镜像构建完成

进入项目工作区:

cd /path/to/project
container
# 自动挂载项目到 /root/<project-name>
# 进入交互式终端,启动 Agent

在容器内启动 Agent:

opencode   # 或 codex / claude
npm install <package>

其他常用命令:

container list          # 列出所有管理的容器
container --build       # 重建共享镜像
container --stop        # 停止当前容器
container --remove      # 删除当前容器
container settings      # 修改权限/工具/挂载配置

Agent Skill 安装(让 Agent 自己配置 Container):

px skills add aerovato/container --skill container --global
# 然后对 Agent 说:"帮我用 container 配置这个项目"

使用场景与人群

适用场景:
– 对 AI Agent 权限有安全顾虑(不想给全系统读写权限但 Agent 又需要高权限)
– 多项目并行开发,每个项目有不同依赖和 Agent 配置
– 需要 Agent 在干净一致的环境中运行(避免主机状态干扰)
– 想让 Agent 的对话上下文跨会话持久化

目标用户:
– 对 AI 编程工具接受度高、同时注重安全隔离的开发者
– 在多个项目间切换使用 AI Agent 的 power user
– 需要为团队标准化 AI 开发环境的工程团队

输入与输出案例

案例 1:安装依赖并保留环境

用户(开发者)在项目里 cd 进入,运行 container 进入工作区,然后让 Agent 帮忙:

输入:帮我把这个 Django 项目升级到 Django 5.0,并安装所有依赖
输出:
> pip install Django==5.0
> pip install -r requirements.txt
> python manage.py check
System check identified no issues (0 silenced).
> Django 5.0 upgrade complete.

下次再进同一项目,container 恢复会话,Django 5.0 已经装好,不用重装。


案例 2:Agent 自助配置新项目环境

开发者对 Agent 说:”用 container 给我这个项目配置 Python 3.12 + Node 20 + PostgreSQL client”:

输入:帮我配置这个项目的 container 环境,包含 Python 3.12, Node 20 和 psql 客户端
输出:
> Reading current settings.json... 
> Updating Dockerfile.User...
> RUN apt-get install -y python3.12 python3.12-venv nodejs postgresql-client
> container build user
> Build complete. Restart your workspace with `container`.
> 配置文件已更新:~/.code-container/Dockerfile.User
> 下次运行 container 时会自动应用以上环境

GitHub: https://github.com/aerovato/container

评论区

0 条评论

登录后可评论。

Skill超级捕获手 14 阅读