AIエージェントのためのDocker Sandboxes

Docker SandboxesはAIエージェントに安全な自律性をもたらす

Docker Sandboxesは、Claude Code、Gemini CLI、Copilot CLI、Codex、OpenCode、Kiroといった、 unattended execution(無人実行)を必要とするAIコーディングエージェントのために特別に設計された、使い捨ての隔離された環境を提供します。エージェントを専用のmicroVM内に隔離することで、開発者はホストシステムの整合性を損なうリスクなしに、パッケージのインストール、設定の変更、Dockerコンテナの実行といった自律性をエージェントに付与することができます。

コアアーキテクチャ:MicroVM vs コンテナ

標準的なDockerコンテナとは異なり、Docker SandboxesはmicroVMアーキテクチャを利用して、エージェントとホストの間に、より強固なセキュリティ境界を構築します。

  • MicroVMの隔離: 各エージェントは、プラットフォームのネイティブハイパーバイザ(macOSではHypervisor.framework、WindowsではWHP、LinuxではKVM)を活用した、独自のカーネルを持つ専用のmicroVM内で実行されます。
  • 技術的実装: このシステムは新しいVMM (Virtual Machine Monitor) を使用しており、nerdboxを介してcontainerdと統合して、これらの軽量な仮想マシンを管理します。
  • パフォーマンス: これらの環境は、従来のVMよりも起動と削除が高速になるよう設計されており、cgroupsベースのコンテナよりも強力な隔離を提供します。

主な機能と「YOLO Mode」

Docker Sandboxesは、手動の権限確認プロンプトによる摩擦を取り除き、エージェントがフルスピードで動作できるように設計されています。

  • Unattended Execution(無人実行): エージェントは、システム依存関係のインストールや、サンドボックス内での独自のコンテナの起動を含む、長時間実行されるタスクを実行できます。
  • YOLO Mode: --dangerously-skip-permissions フラグを使用すると、エージェントは承認プロンプトなしで動作できます。破壊的なアクションは使い捨てのmicroVM内に限定されるため、これは安全に保たれています。
  • カスタマイズ可能な制御: ユーザーはネットワークとファイルシステムの制御を定義して、エージェントがアクセスできるものを制限できます。組織的な強制適用については、Docker AI Governanceを介してこれらの制御を管理できます。
  • ワークスペースのマウント: ホストからmicroVMにはプロジェクトのワークスペースのみがマウントされるため、ホストのファイルシステムの残りの部分は変更されないことが保証されます。

インストールと互換性

Docker Sandboxesは現在、macOSとWindowsで利用可能です:

  • macOS: brew trust docker/tap && brew install docker/tap/sbx
  • Windows: winget install Docker.sbx

特筆すべき点として、この製品の動作にDocker Desktopは必要ありません。マーケティングはmacOSとWindowsに焦点を当てていますが、コミュニティの議論では、メインの製品ページに明示的なLinuxのインストール手順が現在不足していることが指摘されています(ただし、基盤となるアーキテクチャはKVMをサポートしています)。

コミュニティの洞察と技術的批判

開発者の間での技術的な議論により、エージェントのサンドボックス化に関するいくつかの論争点や代替アプローチが明らかになっています:

セキュリティと信頼

一部のユーザーは、完璧なサンドボックスは存在しないと主張し、セキュリティ境界を監査できるオープンソースの代替案を好む傾向があります。AIエージェントが曖昧なプロンプトを達成するために「極端で破壊的な手段」を講じる可能性があるという懸念があり、堅牢な隔離が不可欠となっています。

ユーザーエクスペリエンスの摩擦

複数のユーザーが、ツールを使用するためにDockerアカウントへのログインが必要であることを不満として挙げており、開発者ツールとしての導入における大きな障壁であると述べています。

代替実装

開発者は、以下のような様々な自作の代替案を共有しています:

  • Podmanベースのセットアップ: ユーザー名前空間マッピングを使用した、rootlessかつdaemonlessなコンテナの使用。
  • QEMU/KVM: QEMUのmicroVMマシンタイプを使用して、権限チェックを無効にしてエージェントを実行する。
  • Wasmベースの実行: 最小限の計算のために、Wasmエグゼキュータを備えたbashスクリプトパーサーとインタプリタを実装する。
  • フルVM隔離: 専用のファイアウォールゾーンとホスト上での手動のgit diffレビューを備えた、フルLinux VM内でエージェントを実行する。

機能の欠落

ユーザーは、現在の作業ディレクトリ以外のカスタムボリュームマウントを構成できないといった、現在の機能の制限を指摘しています。これは、エージェントに複数のコンテキストディレクトリを必要とするセットアップを複雑にします。

Sources

関連

  • Dispatch
  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト