Claude Code、Gemini CLI、Codex、Kiro、OpenCodeのようなコーディングエージェントが開発者の働き方を変えています。しかし、これらのエージェントがリポジトリの削除、ファイルの変更、秘密アクセスなどの能力を持つようになるにつれて、開発者は現実的な問題に直面しています。エージェントに十分なアクセス権を与えつつ、ローカル環境に不必要なリスクを与えつつ、どうすればよいのでしょうか?
ローカルコーディングエージェントを安全に運用するより効果的な方法です。
私たちは、目的づくりで孤立したローカル環境でコーディングエージェントを動かせるアプローチに取り組んでいます。Dockerのローカルサンドボックスで、エージェントをコンテナにラップし、ローカルワークスペースをミラーリングし、使用するすべてのコーディングエージェントに厳格な境界を強制します。この目的は、エージェントが必要なアクセス権を与えつつ、ローカルシステムから隔離を保つことです。
本日の実験リリースでは、Docker DesktopのVM内でエージェントをコンテナとして実行しますが、より深い防御とエージェントがDockerコンテナを安全に実行する際の体験を向上させるため、専用のmicroVM内で実行する形に切り替えます。
現在利用可能なもの(実験的プレビュー)。
これは実験的なプレビューです。コマンドが変わるかもしれませんが、 現時点では本番のワークフローにこれに頼るべきではありません。
今日手に入るものは以下の通りです:
- コンテナベースの隔離: エージェントは、バインドマウントされたワークスペースディレクトリ内でコードを実行し、パッケージをインストールし、ファイルを変更できます。
- ファイルシステムの隔離:プロセスの収容、リソース制限、ファイルシステムのスコープ設定を行い、ローカルシステムを保護します。
- 幅広いエージェントサポート:Claude CodeおよびGemini CLIのネイティブサポートで、今後さらに多くのコーディングエージェントサポートも予定しています。
なぜこのアプローチを取っているのか。
オペレーティングシステムレベルのアプローチは長期的に適切な形を持たないと考えています:
- 彼らはエージェントプロセス自体だけをサンドボックス化し、エージェントが必要とする完全な環境は管理していません。つまり、エージェントはパッケージのインストール、コードの実行、依存関係の管理などの基本的な作業のためにホストシステムに常にアクセスしなければならず、そのためワークフローを中断するパーミッションプロンプトが絶えず出されます。
- プラットフォーム間で一貫性がありません。
コンテナベースの分離は、コーディングエージェントが必要とする動的で反復的なワークフローのために設計されています。柔軟性はあっても脆くはありません。
この構造は汎用的なものを意図していますが、まずは特定の事前設定されたコーディングエージェント向けに始めています。あらゆるエージェントの解決策を箱から提供しようとするのではなく、このアプローチは実際の開発者の問題を解決し、素晴らしい体験を提供します。今後は他のユースケースもサポートしていきますが、現時点ではコーディングエージェントが最も大きな影響を与えられる場所です。
試す方法はこちらです。
本日の実験的なプレビューは、Claude CodeとGemini CLIでネイティブに動作します。私たちは開発者が使う他のエージェント向けに作っています。
Docker Desktop 4。50 以降のインストールで実行します: docker sandbox run <agent>
これにより、現在のワーキングディレクトリのバインドがマウントされた新しい隔離環境が作成されます。
次は何だ。
- 複数のエージェントを並行して運用するためのより良いサポートとUX
- 細かなネットワークアクセス制御
- マルチエージェントワークフロー向けの細かなトークンおよびシークレット管理
- 中央集権的なポリシー管理と監査可能性
- MicroVMベースのアイソレーションアーキテクチャ
- 追加のコーディングエージェントのサポート
試してみて、フィードバックを共有してください。
私たちは開発者と共にこれを構築しています。Docker Sandboxを試す際には、あなたのユースケースやワークフローで最も重要なものについてお聞きしたいと思います。
ご意見をお送りください: coding-sandboxes-feedback@docker.com
私たちは、サンドボックス化がすべてのコーディングエージェントがどこでも動く方法であるべきだと信じています。これはまだ初期段階であり、そこに到達するために皆さんの意見が必要です。私たちは妥協のない未来を目指しています。エージェントを自由に動かしつつ、重要なものすべてを守る未来を。