使い方は「エージェントはSandboxes、アプリはコンテナ」
ブログは、2つを組み合わせる使い方も示しています。エージェントはSandboxesで動かし、エージェントが作業するアプリはコンテナにする、という考え方です。
入口は1つのコマンドです。sbx run claudeと入力すると、サンドボックスが作られ、エージェントが起動します。

本ページはプロモーションを含みます
Dockerは、AIエージェント用の環境はコンテナと別物だと公式ブログで整理しました。
要約版:専門用語を控えて説明しています
ブログは、2つを組み合わせる使い方も示しています。エージェントはSandboxesで動かし、エージェントが作業するアプリはコンテナにする、という考え方です。
入口は1つのコマンドです。sbx run claudeと入力すると、サンドボックスが作られ、エージェントが起動します。
Dockerの公式ブログは、AIエージェントの環境として「コンテナ」と「Docker Sandboxes」は別の技術だと整理しました。Docker Sandboxesは「コンテナの中にAIエージェントを入れたもの」ではない、というのがブログの主張です。
コーディングエージェントは、AIがプログラムを書き、実行し、直すところまで自分で進める仕組みです。Dockerの社長Mark Cavageは基調講演で、コンテナは設計どおりに働いているが、いまはコンテナに別の仕事を頼んでいるのだと説明したとされています。
コンテナは、同じ機械の中のほかのプロセスとホストのカーネル(OSの中心部分)を共有します。このため起動が速く、たくさん並べても軽く動きます。
Docker Sandboxesは、microVM(小さな仮想マシン)の中でエージェントを動かします。microVMには専用のLinuxカーネル、ファイルシステム、ネットワーク、Docker Engine(コンテナを動かす本体)が入っています。エージェントは、この中でsudo(管理者権限)も使えます。ブログは、Sandboxesのカーネルは各サンドボックスごとに分かれ、VMの中のプロセスはホストや他のサンドボックスからは見えない、と関連ページで説明しています。
コンテナの壁を越えるには、カーネルの穴を突くか、横から情報を盗む攻撃が必要です。ただ、越えられた先にはホストのカーネル全体と、そこに置かれた認証情報が見えてしまいます。ブログは、macOSやWindowsのDocker Desktopでは共有されるのがホストのカーネルではなくDocker DesktopのVMのカーネルなので、突破した先はそのVMになる、と注記しています。
Dockerのソケット(/var/run/docker.sock)をコンテナに渡す設定も問題です。ソケットを通じてホストのDockerを操作できるため、ホストのパスを読めたり、特権コンテナを起動できたりします。ブログによると、Mark Cavageの基調講演のデモでは、エージェントが脆弱性を使わずに、この穴を通ってホストのシークレットファイルに届きました。
エージェントは、環境を探るのが仕事の一部です。だからこそ、設定の隙間を見つけやすいと、ブログは指摘しています。
ブログは、自律型のエージェントに必要な条件を4つ挙げています。隔離(Containment)、見て止められること(Control)、エージェントやモデルを替える自由(Choice)、他の開発者が同じ環境を再現できること(Capacity)です。
管理の面では、通信はホスト側のプロキシを通り、初期設定では拒否する方針です。エージェントが設定を変えたり回避したりできない場所で管理されます。認証情報は、ホスト側のプロキシが認証ヘッダーを差し込む仕組みで、関連ページによると対応するHTTPサービスで使われます。SSHのエージェント用ソケットは、ホストでSSH_AUTH_SOCKが設定されているときだけ転送され、秘密鍵はホストに残ります。
一方で、共有スキルの保存先は、オプトアウトしない限り読み書きできる状態でマウントされ、同じ保存先を使う他のサンドボックスからも変更が見えることがあると、関連ページでは書かれています。隔離されていても、見せると選んだものは見える、という点は押さえておく必要があります。
作業の途中経過を残せるか
コーディングエージェントの作業は、リポジトリの取得、パッケージの導入、PostgreSQLの起動、マイグレーション、イメージのビルドを、数時間かけて繰り返します。一つひとつの手順が、前の手順の結果に依存します。
コンテナは、イメージと決まったボリュームから作り直す前提の仕組みです。ボリューム以外に作ったパッケージやデータベース、ビルドの結果は、コンテナを作り直すと消えます。
Docker Sandboxesは、sbx rmで削除するまで、パッケージやイメージ、エージェントの履歴を保持します。止めて再開することもできます。
隔離の仕組みはSandboxes、アプリの配布や実行はコンテナ向きです。
| 比べること | 通常のコンテナ | Docker Sandboxes | 有利なのは |
|---|---|---|---|
| カーネル | ホストと共有 | 専用のカーネル | Sandboxes |
| Docker | ホストのソケットか入れ子のデーモン | 内部に専用のDocker Engine | Sandboxes |
| 状態の保持 | イメージとボリュームから再構築 | sbx rmまで保持 | Sandboxes |
| CI・Kubernetesとの連携 | 広く対応 | sbxの仕組みと試験的な環境ファイル | コンテナ |
ブログは、用途ごとに使い分ける考え方を示しています。パッケージ化されたアプリ、CIのジョブ、短時間で終わる実行にはコンテナが向くとしています。一方、エージェントが長く続く状態を保ち、専用のDocker Engineを必要とする場合にはSandboxesが向くと整理しています。既存の運用ツールとの広い互換性では、コンテナが勝ります。
ブログは、2つを組み合わせる使い方も示しています。エージェントはDocker Sandboxesで動かし、エージェントが作業するアプリはコンテナにする、という考え方です。
入口は1つのコマンドです。Docker Sandboxesの専用CLI(コマンドラインツール)であるsbxで、sbx run claudeと入力すると、サンドボックスが作られ、エージェントが起動します。止めたあとは、エージェントが入れたものを残したまま再開できます。
サンドボックスの中でも、Dockerのイメージを作ったり、Testcontainersを動かしたり、Docker Composeで複数のコンテナを立ち上げたりできます。ホストのDockerデーモンとそのソケットは、microVMの外に残ります。
発表内容をもとにした一般的な情報です。導入や契約の判断は、公式情報を確かめたうえでご自身で行ってください。
まず公式ブログで隔離の違いを確かめ、日本での提供は公式の発表を待つとよいでしょう。
11/8時点の判定。発表内容をもとにAIで判定しています。最新の提供状況は公式情報をご確認ください。
AI生成同じ話題の記事提供中Docker、前日に出た記事から大きな発表を選び、1本2行でまとめてメールで届けます。無料・いつでも解除できます。
主要企業の大きな発表だけ、1日4回まで。夜22時〜朝7時は鳴らしません。いつでも解除できます。
本記事は公式発表の文章をもとにAIが要約・解説して自動生成したものです。誤りが含まれる可能性があるため、正確な仕様・料金は公式発表をご確認ください。元記事を読む制作方法と事実確認の手順は編集方針をご覧ください。誤りのご指摘はお問い合わせから受け付けています。
画像:Docker(公式発表より)