YOLO模式的问题
Claude Code有个叫「YOLO模式(--dangerously-skip-permissions)」的功能。不用确认就直接执行命令,效率高得不是一点半点。
但正如其名,这是个危险的功能。
网上「Claude Code把我主目录删了」的吐槽应该不少人见过吧。我自己做了个用手机操作Claude Code的工具Pockode,也支持了YOLO模式,但直接在自己电脑上跑还是心里发毛。
于是我开始研究用Docker隔离,结果发现最近刚好加了个专门为这个场景设计的功能。
Docker Sandboxes
这是Docker Desktop 4.50新增的实验性功能。发布日期是2025年11月6日,还热乎着呢。
用法简单到离谱。
docker sandbox run claude
就这样。Claude Code就在隔离的Docker环境里跑起来了。
当前目录会自动挂载,可以直接开始干活。而且这功能本来就是为YOLO模式设计的,所以默认就开启了自动批准模式。
选项也照常能用。-c可以继续上次的对话。
docker sandbox run claude -c
关于认证
认证需要在sandbox里单独进行,跟宿主机是分开的。每个sandbox都需要认证,有点麻烦。
想继承~/.gitconfig和~/.ssh的话,可以用--credentials host选项。
docker sandbox run --credentials host claude
注意,这不会继承Claude Code本身的认证,只是Git和SSH之类的配置。要不要把~/.ssh挂进去,就看个人取舍了。
主要选项
| 选项 | 说明 |
|---|---|
--credentials string | 认证信息来源。可选host / sandbox / none,默认sandbox |
-d, --detached | 不交互启动,只创建sandbox |
-e, --env strings | 设置环境变量。格式:KEY=VALUE |
--mount-docker-socket | 挂载宿主机的Docker socket |
--name string | 指定sandbox名称 |
-v, --volume strings | 挂载卷。格式:hostpath:sandboxpath[:readonly] |
-w, --workspace string | 工作目录路径,默认当前目录 |
关于安全性
Docker Sandboxes是专门为了AI代理设计的,比普通Docker容器更安全。
但毕竟没有用VM完全隔离,或者干脆弄台专用机器安全。
用--credentials=host会把~/.ssh之类的也挂进去,介意的人可能会在意。
但作为现实中的折中方案,应该够用了。至少「一不小心主目录没了」这种事故能避免。
总结
YOLO模式(--dangerously-skip-permissions)好用但吓人。用Docker Sandboxes的话,既能享受它的便利,又能保护宿主环境。
docker sandbox run claude
想用YOLO模式但一直不敢用的朋友,可以试试。
宣传: 我做了个用手机在家里电脑上跑Claude Code开发的工具Pockode。