ニュースレター
AIの最新情報を受け取る
新しいAIツールや活用ガイドをメールでお届けします

Docker AgentとDocker Sandboxesは競合ではありません。エージェント構築と隔離実行という役割の違い、組み合わせ方、安全な導入手順を解説します。
2026/09/07
AIエージェントにリポジトリを渡すとき、「どのモデルに何をさせるか」と「その処理をどこで安全に動かすか」は別の問題です。Docker AgentとDocker Sandboxesは名前が似ていますが、前者はエージェントを組み立てて実行する基盤、後者はエージェントをホスト環境から隔離する実行環境です。
どちらか一方を選ぶというより、必要に応じて組み合わせます。本記事では、Dockerの公式ドキュメントをもとに役割、導入判断、安全上の注意を整理します。
エージェントの役割分担やモデル切り替えを宣言的に管理したいならDocker Agentが中心です。既存のコーディングエージェントを隔離して走らせたいならDocker Sandboxesから考えると整理しやすくなります。
| 比較項目 | Docker Agent | Docker Sandboxes |
|---|---|---|
| 主目的 | AIエージェントの構築・オーケストレーション | エージェント実行環境の隔離 |
| 設定対象 | モデル、指示、ツール、サブエージェント | ワークスペース、秘密情報、実行環境 |
| 主な設定 | YAMLまたはHCL | CLIとサンドボックス設定 |
| モデル | OpenAI、Anthropic、Gemini、Bedrock、ローカルモデルなど | 内部で動かすエージェント側が選択 |
| 拡張 | 組み込みツール、MCP、API、A2A、OCI配布 | テンプレート、保存シークレット、隔離ワークスペース |
| 単独利用 | 可能 | 可能 |
| 組み合わせ | Sandboxes内で実行できる | Docker Agentをテンプレートとして実行できる |
重要なのは、Sandboxesがエージェントの思考や役割分担を設計する製品ではない点です。また、Docker Agentの安全モードはツール承認を制御しますが、ホスト全体からの隔離そのものではありません。
Docker Agent公式ドキュメントでは、モデル、人格、ツール、協働方法をYAMLまたはHCLで宣言し、接着コードを書かずにマルチエージェントを構成できると説明されています。
たとえば、次のような役割分担が考えられます。
Docker Agentにはファイル、シェル、メモリ、RAG、Gitなどのツールがあり、Docker MCP Catalogを含むMCPサーバーも接続できます。OpenAI、Anthropic、Google Gemini、AWS Bedrock、Docker Model Runnerなど複数のモデルプロバイダーに対応し、用途ごとにモデルを分けられます。
設定したエージェントはTUIやCLIだけでなく、HTTP API、MCPモード、A2Aからも利用できます。OCIレジストリへ保存して共有できるため、チーム内で実行構成を再利用したい場合にも向いています。
Docker Sandboxesは、AIコーディングエージェントがファイルを書き換え、依存関係を導入し、コマンドを実行するときの境界を作ります。普段使うホスト環境へ直接エージェントを置く場合と比べ、作業ディレクトリや認証情報を分離しやすくなります。
これは、Claude CodeやOpenAI Codexのようなエージェントを安全に試したいときにも重要です。モデルが高性能でも、誤ったコマンド、信頼できない依存関係、WebやREADMEに埋め込まれた指示によるリスクは残ります。実行環境の境界はモデルの賢さとは別に設計する必要があります。
ただし、サンドボックスを使うだけで安全が完成するわけではありません。ネットワーク、マウント、保存シークレット、公開ポート、成果物をホストへ戻す方法を確認してください。
Dockerの公式手順では、プロジェクトを指定して次のようにDocker Agent用サンドボックスを作成できます。
sbx run docker-agent ~/my-projectDocker Agentは必要なプロバイダーの認証情報を保存シークレットから利用できます。OpenAI、Anthropic、Google、xAI、Mistral、OpenRouterなど、実際に使うプロバイダーだけを設定します。
注意点があります。公式のSandboxes向け手順によると、追加引数なしの起動は内部でdocker-agent run --yoloを使います。--yoloはツール呼び出しを自動承認するautonomousモードの旧エイリアスです。隔離環境内であっても、外部API、ネットワーク、マウント、シークレットへのアクセス範囲は別途制御してください。
Docker Agent CLIリファレンスには4つの安全モードがあります。
| モード | 動作 | 向いている用途 |
|---|---|---|
| strict | すべてのツール呼び出しを確認 | 初回検証、高リスク環境 |
| balanced | 安全と判断された呼び出しを自動承認 | 人が監視する日常作業 |
| restricted | 安全な呼び出しだけ承認し、それ以外は拒否 | 無人実行、失敗時に停止したい処理 |
| autonomous | 原則として自動承認 | 十分に隔離した短期テスト |
無人実行だからautonomous、とは限りません。予期しない操作を人に確認できない場合、許可されない処理を拒否するrestrictedのほうが適切なことがあります。まずstrictまたはbalancedで必要な操作を観察し、許可ルールと隔離範囲が固まってから自動化を広げるのが安全です。
Docker AgentとDocker Sandboxesは代替関係ではありません。Docker Agentは「何を、どのモデルとツールで、どの役割分担で進めるか」を構成し、Docker Sandboxesは「その実行をどの境界内に閉じ込めるか」を担当します。
まずはDocker Agentのツールページで対応機能を確認し、信頼できる小さなリポジトリをstrictまたはbalancedで動かしてください。ホストへの影響、秘密情報、依存関係を分離したい段階でDocker Sandboxesのツールページを組み合わせると、役割を混同せずに安全性を高められます。