你有没有过这种体验:Claude Code 吭哧吭哧干到一半,突然弹个框问你"Do you want to proceed?",你点完 Yes 刚喝口水,它又弹一个。一个任务下来,打断你七八次,活没干完,水倒是多喝了两杯。

给完整权限吧?想想 rm -rf / 的都市传说,手就抖。不给吧?这工具基本没法用。

这个困境说白了就一句话:你既想让 AI 放手干活,又怕它把你家拆了。

今天聊一个开源项目叫 Code Container,用 Docker 容器解决了这个问题。装上之后,Claude Code、Codex、OpenCode 随便你怎么折腾,rm -rf 随便跑。反正炸的是容器,你本机毫发无伤。


那个让人崩溃的下午

先说个真实场景。作者 Kevin 有一次分析一个 monorepo,计划是 Claude Code 看后端,他看前端,两人并行干活,效率拉满。

并行持续了大概 5 秒。

“Do you want to proceed?” — 点 Yes。 “Do you want to proceed?” — 再点 Yes。 “Do you want to proceed?” — 咬着牙点 Yes。

五分钟后他发现:自己不是在编程,是在当 AI 的前台保安——唯一的职责就是不断点头说"进去吧进去吧"。人在这头等着 AI 返回结果,AI 在那头等着人点确认按钮。互相等,双输。

这就好比你在厨房让助手切菜,他每切一刀都要回头看你一眼,问"这一刀行不行?"——你是让他切还是不让他切?


三条路,你选哪条?

面对这个困境,市面上的解法就三种:

方案做法后果
方案 A:全程保姆式每次弹窗都手动确认人被绑死,效率极低
方案 B:直接裸奔--dangerously-skip-permissions快是快了,但一颗 rm -rf 教做人
方案 C:容器隔离Docker 里随便跑,炸了重建又快又安全

方案 A 是折磨自己,方案 B 是赌命。而方案 C,就是 Code Container 做的事。


Code Container 是什么?

一句话概括:把你的项目目录挂载进 Docker 容器,让 AI 编程工具在里面裸奔,宿主机不受影响。

它的原理简单到让人拍大腿——既然你怕 AI 删东西,那就让它删嘛,反正删的是容器里的。最坏情况?删了容器重建一个,也就一秒的事。

# 一行命令安装
npm install -g @aerovato/container

# 初始化(首次运行,5 分钟搞定)
container init

# 然后随便进一个项目
cd /path/to/your/project
container
# 进去了,随便造

整个项目就是一坨 shell 脚本加一个 Dockerfile,全部开源。核心逻辑不到 300 行。


它是怎么运作的

当你执行 container 时,背后做了这几件事:

  1. 创建或恢复容器:容器名是 container-{项目名}-{路径哈希},每个项目一个独立容器,互不干扰
  2. 挂载项目目录:你的项目挂到容器的 /root/{项目名},代码直接可用
  3. 挂载 AI 工具配置.codex.config/opencode.claude 等配置文件自动挂进去,对话历史、工具链配置全保留
  4. 只读挂载敏感文件:SSH key 和 Git 配置以只读方式挂载,commit、push 该咋用咋用
  5. 退出自动停容器:exit 之后容器自动停止,下次进来一切照旧
┌─────────────────────────────────────────┐
│              你的宿主机                    │
│  ┌───────────────────────────────────┐  │
│  │         Docker 容器                 │  │
│  │  /root/your-project  ← 挂载项目     │  │
│  │  ~/.claude  ← 挂载配置              │  │
│  │  ~/.ssh      ← 只读挂载             │  │
│  │                                     │  │
│  │  AI 在这里裸奔                        │  │
│  │  rm -rf / ← 炸的是容器,关你屁事       │  │
│  └───────────────────────────────────┘  │
│        你的本机毫发无伤                    │
└─────────────────────────────────────────┘

启动速度方面,第一次创建容器大概一秒,后续恢复基本瞬间完成。Kevin 说他现在每天用,从来没觉得有等待时间。


实战:怎么用?

假设你有一个 Rust 项目叫 my-crate,想用 OpenCode 重构某个模块。

第一步:安装并初始化

npm install -g @aerovato/container
container init

初始化过程会引导你选择运行时(Docker 或 Podman)、配置基础镜像、选择要安装的工具包。全程交互式,跟着提示走就行。

第二步:进项目开干

cd ~/projects/my-crate
container

进去之后,你会发现:

  • 项目代码就在 /root/my-crate
  • Git 配置和你本机一模一样,可以直接 commit
  • OpenCode / Codex / Claude Code 全都装好了,直接敲命令启动
  • 而且——不用再等权限确认了,直接给完整权限,让它放手干

第三步:多容器并行

这个特性我个人觉得最实用。你可以同时开两个终端:

# 终端 1:让 Claude Code 重构后端
cd ~/projects/my-monorepo/backend
container
# 进去直接 claude,把活扔给它

# 终端 2:你在这头写前端
# 各干各的,互不打断

同一个项目甚至可以起多个容器实例,一个干重构、一个跑测试、一个写文档。每个都是独立沙箱,随便折腾。


什么场景最适用?

场景一:接手的屎山代码

新接手的项目,AI 一上来就要大改。你敢让它直接改?反正我不敢。扔容器里,改坏了就坏了,看看它到底能改成啥样。

场景二:多 AI 工具并行

上午用 Claude Code 写业务逻辑,下午用 Codex 处理复杂架构,晚上用 OpenCode 做代码审查。三个工具共享同一套配置和对话历史,不用切来切去重新配置。

场景三:实验性项目

想试试让 AI 从头做一个项目?新建一个目录,container 进去,让它随便搞。不满意就 docker rm 重来,零成本试错。


定制化:让容器更顺手

Code Container 完全开源,你想怎么改就怎么改。把仓库 clone 下来,告诉你的 AI 助手你想要什么:

git clone https://github.com/aerovato/container
# 然后随便让 Claude Code 帮你改

一些常见的定制:

# 在容器里装 Rust 和 Go 工具链
# 把基础镜像换成 Alpine Linux(体积更小)
# 把 ~/.vimrc 挂进容器
# 加个自动安装项目依赖的钩子

文档很全,喂给 AI 助手它就能看懂并帮你改。


最后的建议

这个工具的思路简单到让人想问"为什么没人早点做"。就一个容器,几行 shell 脚本,解决了 AI 编程工具最烦人的一个问题。

我自己用了一段时间后的感受是:一旦你体验过让 AI 在容器里裸奔的感觉,你就再也回不去手动确认的日子了。 那种"随便跑,出不了事"的安心感,和"不用管它,我干我的"的自由感,比想象中爽得多。

当然,容器不是万能的。它解决的是文件系统层面的安全问题——AI 删文件、写脏数据这些事。但是对于AI 调用外部 API、访问网络这些,你还是得留个心眼。不过话说回来,有容器这层隔离在,至少你把最坏情况的破坏半径锁死在了容器内部。


FAQ

Q:这和直接在本地跑有什么区别?

最大区别是安全感。本地跑你永远提心吊胆,容器里跑你心态完全不一样——“炸了?重建呗。“这种心态差异直接决定了你愿不愿意让 AI 放手干活。Claude Code 自己的权限系统 设计得并不差,但加上容器这层物理隔离,相当于上了双保险。

Q:容器的性能损耗大吗?

几乎没有。文件读写走的是 bind mount,和本地差不多。网络栈复用宿主机。启动和销毁都在一秒内完成。

Q:多个容器之间能共享配置吗?

可以。.claude.codex 等配置目录是共享挂载的,你在项目 A 里调好的 skill,项目 B 里直接用,对话历史也互通。

Q:Git 操作正常吗?

完全正常。SSH key 和 .gitconfig 以只读方式从宿主机挂载进去,commit、push、pull 跟本地一模一样。

Q:Windows 能跑吗?

目前主要支持 Linux 和 macOS。Windows 可以通过 WSL2 的 Docker 来跑,体验稍差一点但也能用。

Q:和 cc-codex-portal 之类的在线服务比起来怎么样?

这是两种不同的思路。Code Container 解决的是本地 AI 编程工具的权限和隔离问题;在线服务(比如梦兽编程的 AI 编程助手 )解决的是模型接入和成本问题——你不用自己折腾 API key、不用担心额度上限。两者并不冲突,甚至可以搭配使用:用在线服务获取模型能力,用容器保护本地环境。


聊了这么多容器隔离,说白了就是想让 AI 干活更顺手。如果你也在折腾 AI 编程工具,关注「全栈之巅-梦兽编程」公众号,每周分享 AI 编程实战经验和最新工具。

也欢迎了解 梦兽编程 AI 编程助手服务 ,一站式接入 Claude、Codex、GPT 等模型,不用折腾 API,不用操心额度,开箱即用。