Claude Code や Copilot CLI に長い仕事を任せるとき、権限の確認を全部飛ばす設定(--dangerously-skip-permissions)を使いたくなります。確認のたびに止まるエージェントは、無人では走れないからです。ただ、この設定の名前が警告するとおり、飛ばした確認の先で何が実行されても、止める物はもうありません。Docker がこの問題に出した答えが Docker Sandboxes です。
何が出たか。エージェント専用の使い捨て実行環境
Docker Sandboxes は、AIコーディングエージェントを隔離された環境で動かす仕組みです。対象として Claude Code・Copilot CLI・Codex・OpenCode・Kiro が名指しされています。導入は macOS なら brew install docker/tap/sbx、Windows は winget、Linux は apt。Docker Desktop は不要で、コア機能は無料です。
製品ページの一文が、設計の狙いをそのまま言っています。
Sandboxes let them run fast without running wild, so speed and safety stop being a tradeoff.
速く走らせることと暴走させないことを、交換条件にしない。この一文の裏には、安全装置の置き場所の変更があります。
コンテナの会社が、コンテナを選ばなかった
各エージェントは専用の microVM の中で動き、マウントされるのはプロジェクトのワークスペースだけです。製品ページはこれを「Hard security boundary from the host」、ホストからの硬い境界と呼んでいます。
コンテナの会社である Docker が、自社の看板でなく microVM を選んだ理由は、守る相手の性質から読めます。コンテナのプロセス隔離は、ホストとカーネルを共有します。開発者が自分の書いたものを動かすぶんには十分でも、エージェントは「何を実行するか事前に分からない主体」です。指示の解釈を誤ることがあり、読み込んだコンテンツに操られること(プロンプトインジェクション)もあります。だから境界はカーネルの外、VM の層に引く。そのうえで各サンドボックスの中では Docker 自体も動かせるので、コンテナを使う開発フローはそのまま持ち込めます。
「確認を全部飛ばす」が既定になっている意味
このサンドボックスの中では、エージェントの許可プロンプトを飛ばす実行が既定です。順序に注意してください。確認を飛ばすから危ないのではなく、箱の外に出られないから確認を飛ばせる。安全装置を1個ずつ外して速くする代わりに、境界を1段外側へ引き直して、内側を全部許しています。
エージェントの許可プロンプトは、人間が画面を見ている前提の安全装置です。無人実行では誰も見ていないので、プロンプトは安全を足さず、停止だけを足します。境界をホストの外周に移せば、内側でエージェントがどれだけ自由でも、事故の半径は箱の大きさで止まります。
使う側に残る判断
境界を箱に任せても、箱に何を入れるかは使う側の判断です。3つ残ります。
- マウントは最小に — 内側が自由になったぶん、箱に入れた物には全部エージェントの手が届く。プロジェクトのワークスペース以外を入れない
- 認証情報を箱に入れない — APIキーや本番環境の認証情報を環境変数で渡してしまえば、隔離した意味が消える
- ネットワークを絞る — Sandboxes はネットワーク制御を設定でき、組織単位の統制(Docker AI Governance)も用意されている。外へ出ていく経路が事故の出口になる
まとめ方としてはこうです。エージェントをどこまで信用するかを1操作ずつ決めるのをやめて、どこから先は物理的に無理、を先に決める。信用の問題を構造の問題に置き換えるこの筋は、エージェントに限らず、人に任せる仕組み全般で使えます。