はじめて読む方へ: この記事では、Docker Cloud Sandboxes を「便利そうな新サービス」としてだけでなく、AIエージェントを安全に、長時間、クラウドで動かすための仕組みとして整理します。まずは クラウドで動くAIエージェント用サンドボックス、sbx move はライブマイグレーションではない、Kit仕様はエージェントの権限を再現可能にする仕組み、この3点を押さえてください。
2026年9月24日、Docker社は AIエージェント向けのクラウド実行環境「Docker Cloud Sandboxes」を発表しました。
本記事では、この発表を Docker公式ブログ・公式ドキュメント・CLIリファレンス まで確認し、
を整理します。記載内容はすべて末尾の参考資料に基づいており、公式情報から確認できなかった点は「不明」と明記しています。
| 用語 | 説明 |
|---|---|
| AIコーディングエージェント | Claude Code、Codex、Gemini CLI などのように、人間の指示を受けて自律的にコードを書き、ビルド・テスト・実行まで行うAIツール。 |
| サンドボックス(Sandbox) | 「砂場」の意味。外部(ホストマシンや本番環境)に影響が及ばないよう隔離された実行環境。エージェントが誤ってファイルを消したり、不正な通信をしても被害を閉じ込められる。 |
| コンテナ | Dockerでおなじみの仮想化方式。ホストOSのカーネル(OSの中核部分)を共有し、namespaces や cgroups という仕組みで「見える範囲」を区切る。軽量だが、カーネルを共有する分、隔離の強さには限界がある。 |
| VM(仮想マシン) | ハイパーバイザー(仮想化ソフト)上で独自のカーネルを持つOSを丸ごと動かす方式。隔離は強いが、起動が遅く重い。 |
| microVM(マイクロVM) | VMの強い隔離(独自カーネル)を保ちつつ、機能を絞って軽量・高速化したVM。コンテナとVMの「いいとこ取り」を狙ったもの。 |
| MCP(Model Context Protocol) | AIエージェントが外部ツール(Jira、GitHub、DBなど)とやり取りするための標準プロトコル。 |
| OCI(Open Container Initiative) | コンテナイメージの形式や配布方法を標準化している団体・仕様。Dockerイメージが「どこでビルドしてもどこでも動く」のはこの標準のおかげ。 |
| CNCF(Cloud Native Computing Foundation) | Kubernetes などを擁する、クラウドネイティブ技術の中立的な標準化・育成団体(Linux Foundation傘下)。 |
| Long-horizon work(長時間タスク) | 数分ではなく数時間〜数十時間かかるエージェントの作業。大規模リファクタリングや依存関係の移行など。 |
Docker は2025年11月に実験的プレビューとして Docker Sandboxes を公開し、2026年1月末に microVM ベースへ強化したうえで macOS / Windows 対応を発表しました。
公式ブログでは、エージェントを安全に無人で動かそうとすると次の壁に当たると説明されています。
そこで Docker Sandboxes は、エージェントごとに専用の microVM を立て、その中に独自のカーネルと独自の Docker デーモンを持たせる設計を採りました。これにより、エージェントはサンドボックス内で自由にパッケージを入れたり Docker コンテナをビルド・実行したりでき、それでもホスト側の Docker デーモンには一切触れられません。
同日公開された Kit 仕様のブログで、Docker のエンジニアは両者の違いを次のように整理しています(筆者要約)。
つまり「エージェントが到達・改変できる層よりも下に境界を置く」ために microVM を使う、という考え方です。
ローカルの Docker Sandboxes と同じ microVM・同じCLI・同じ隔離モデルを、Docker が管理するクラウド上で動かせるサービスです。
公式ブログは、Docker Sandboxes が「無人で動かしても安全か?」という第一の問いに答えたのに対し、Cloud Sandboxes は「十数個のエージェントを、それぞれ5時間・10時間・21時間と、誰も見張らずにどう動かすか?」という第二の問いに答えるものだ、と位置付けています。
公式ブログの主張はシンプルです。
ノートPCは「人間」を前提に作られている。蓋を閉じればスリープし、バッテリー駆動では遅くなり、移動すれば切断される。
30秒で終わるタスクなら問題になりませんが、一晩かかるタスクではすべてが問題になります。言い換えると、ローカルだけで運用すると次の2つの課題が出てきます。
| 特徴 | 内容 |
|---|---|
| ノートPCを閉じても作業継続 | 帰宅前にクラウドでエージェントを起動し、切断して、翌朝結果を確認できる |
| ローカルで始めてクラウドへ | 手元で対話的に試行錯誤し、長時間タスクだけバックグラウンドのエージェントに渡す |
| 100タスク並列 | 事前のプロビジョニング(サーバー準備)不要。各エージェントが専用の microVM・シークレット・ネットワークポリシーを持つ |
| 安く試せる | 既製のエージェントを1時間だけ動かして試し、終わったら止める |
公式ブログでは、長時間無人で働くエージェントに必要なものとして、①何もインストールせずに始められること、②仕事の道具、③到達範囲の制限、の3つを挙げ、それぞれ次の機能で提供するとしています。CLI と Webコンソールの両方から操作できます。
1. Kits(キット) エージェントごとに事前構成・事前ビルドされたサンドボックス。発表時点で Claude Code、Codex、Copilot、Antigravity、OpenCode、Hermes などが用意されています。なお CLI リファレンスの sbx run には、利用可能なエージェントとして claude / codex / copilot / cursor / devin / docker-agent / droid / gemini / kiro / opencode / shell が列挙されています。
2. MCP Jira、Linear、Grafana、incident.io、あるいは任意の streamable HTTP エンドポイントの MCP サーバーを一度接続すれば、クラウド・ローカル・ChatGPTデスクトップアプリなど他クライアントからも、単一のゲートウェイ経由で全エージェントが使えます。
3. Secrets(シークレット)と Policies(ポリシー)
従量課金(Pay-as-you-go)で、コンピュートを秒単位で課金。それ以外は課金されないと明記されています。
| サイズ | vCPU | メモリ | 1時間あたり | 円換算(1ドル150円) |
|---|---|---|---|---|
| Micro | 1 | 2 GiB | $0.07 | 約10.5円 |
| Small(デフォルト) | 2 | 4 GiB | $0.14 | 約21円 |
| Medium | 4 | 8 GiB | $0.28 | 約42円 |
| Large | 8 | 16 GiB | $0.56 | 約84円 |
| XL | 16 | 32 GiB | $1.12 | 約168円 |
補足事項(公式ブログ・ドキュメントより):
# CLI のインストール(Homebrew)
$ brew install docker/tap/sbx
$ sbx login
# クラウドで Claude Code を起動
$ sbx --cloud run claude
ブラウザからは Webコンソール にサインインし、Kit を選んで Run するだけです。
ポイントは --cloud フラグを付けるだけで、同じ sbx コマンドの実行先がクラウドに切り替わることです。なおドキュメントによれば、クラウド側では sbx --cloud run claude . のようにローカルのパス(.)を渡すとエラーになります。
sbx move は「動いたまま移動」ではないここが本記事で最も伝えたいポイントです。「1コマンドでローカルとクラウドを行き来できる」と聞くと、エージェントが動いたまま移動するように感じますが、実際は違います。
公式ドキュメント「Move a sandbox」の冒頭には、sbx move はファイルシステムのスナップショットを転送するもので、実行中サンドボックスのライブマイグレーションではない、と明記されています。
sbx move の実際の処理は次の3ステップです。
そして以下の挙動が明記されています。
つまり正確には、「作業途中のファイル状態を持ってクラウドで再開できる」であって、「動いているエージェントのプロセスがそのまま空中移動する」わけではない、ということです。公式ブログの表現も「A move captures the sandbox's filesystem and recreates it on the other side(ファイルシステムをキャプチャして向こう側で再作成する)」となっています。
💡 実務上の意味
エージェントがメモリ上に持っている会話コンテキストや実行中のビルドプロセスは引き継がれません。移動後はエージェントを再度アタッチ・再起動して、ファイルに残った状態から作業を続ける形になります。長時間タスクを移動させる場合は、進捗がファイル(コミット、TODOファイル、作業ログなど)として残る運用にしておくのが安全です。
公式ドキュメントに列挙されている、移動で引き継がれないものは次のとおりです。見落とすと「クラウドに移したらコードがない」という事態になり得るので要注意です。
| 項目 | ローカル→クラウド | クラウド→ローカル |
|---|---|---|
| ワークスペース(ホストのフォルダ) | ❌ ホストからマウントしたファイルは含まれない。CLIが警告して確認を求める(--force で確認は飛ばせるがファイルは含まれない) | ❌ ホスト側フォルダは作られない。sbx cp で取り出す |
| ネットワークポリシー | ❌ ローカルのルールはコピーされず、クラウド側ポリシーが適用される | ❌ クラウドのルールはコピーされず、ホストのデフォルトが適用される |
| 管理シークレット | ❌ コピーされない(クラウド側シークレットストアに既にあるものは使える) | ❌ 同様 |
| 公開ポート | △ TCPポートはクラウドURLで公開(拒否されたものはスキップ) | △ ローカルのループバックにバインド |
| CPU / メモリ | △ 最も近い対応サイズに切り上げ。上限超えなら移動不可 | △ ローカルのデフォルト |
| CPUアーキテクチャ | 変換されない。amd64 / arm64 が一致している必要あり | 同左 |
特に注意すべき点が2つあります。
① 手元のプロジェクトフォルダは移動しない ローカル版はホストのフォルダをマウントして使うのが基本ですが、そのファイルは「サンドボックスのファイルシステムの外側」にあるため、クラウドへ移動しても付いてきません。クラウドで作業させたいコードは、サンドボックス内で git clone するか sbx cp で転送する必要があります。
② サンドボックス内に書かれた認証情報は「付いていく」 逆に、エージェントの対話ログインなどでサンドボックス内のファイルに書き込まれた認証情報は、普通のファイルとしてスナップショットに含まれてしまいます。ドキュメントは移動前にこれらを削除するよう注意喚起しています。
--ttl を指定しないとサーバーのデフォルト(通常1時間)が使われ、タイムアウト時のデフォルト動作は「削除」になる場合があります。残したい作業なら --ttl 2h --on-timeout stop のように明示すべきです。# 推奨:有効期限と期限切れ時の動作を明示して移動
$ sbx move local-project --to cloud --ttl 2h --on-timeout stop
# 移動後は両方の一覧を確認し、移動先を検証してから移動元を消す
$ sbx ls
$ sbx --cloud ls
Cloud Sandboxes と同じ9月24日に、Docker はさらに2つの発表をしています。筆者はむしろこちらの方が、長期的にはインパクトが大きいと感じました。
Kit 仕様を書いたエンジニアは、問題意識をこう語っています(筆者要約)。
Dockerfile は「ソフトウェアがどうビルドされるか」は記述できますが、「外部のどこに通信してよいか、どの認証情報を使うか、どのボリュームが必要か」は書けません。これまで docker run のフラグや Compose ファイル、CI設定、誰かの記憶に散らばっていたこの「外側」の情報を、コンテンツと一緒に書き留めるのが Kit です。
v3 では、Kit が独自アーティファクトではなく通常の OCI イメージになりました。宣言内容はマニフェストの1つのアノテーション(vnd.docker.sandbox.kit.descriptor)に入り、中身はレイヤーに入ります。
これによる実利は大きく、
docker buildx build でビルド、docker pull で取得できるKit には2種類あります。
公式ブログには GitHub CLI 用 mixin の例が載っています。説明用に要点だけ簡略化すると、次のような構造です。
# ※ 公式ブログの例をもとに筆者が要点のみ簡略化したもの
capabilities:
- type: com.docker.sandbox/network-policy@2
config:
runtime:
allow:
- github.com # GitHub には行ってよい
- hosts: [api.github.com]
methods: [GET, POST, PATCH, PUT, DELETE]
deny:
- hosts: [api.github.com]
methods: [DELETE]
paths: [/repos/**] # ただしリポジトリ削除は禁止(deny が優先)
- type: com.docker.sandbox/credential@1
config:
service: github
apiKey:
name: GH_TOKEN
proxyManaged: true # 実際の値はプロキシが注入。サンドボックス内にはダミー値のみ
これは「許可証」として読めます。プルリクエストを作れるトークンでも、リポジトリは削除できない。そして Kit 自体は何の権限も自分に与えず、各項目はあくまで「要求」で、判断するのはホスト側です。
ここで重要なのが「適合ランタイム(conforming runtime)」という概念です。仕様どおりに動作を実装したランタイムだけがこの宣言を強制でき、適合ランタイムでなければアノテーションはただの飾りになります。Docker Sandboxes が最初の適合ランタイムです。
個人的に最も面白いと感じたのがこの設計です。
Docker はこれを「Dockerfile はソフトウェアを再現可能にした。Kit は権限を再現可能にする」と表現しています。
もう1つの発表が、この Kit 仕様を Apache 2.0 のオープンソースとして公開し、CNCF の中立的ガバナンスに持ち込むというものです。
Docker はこれを、10年前に自社のイメージ形式と runc ランタイムを Linux Foundation に寄贈し、OCI が生まれた歴史になぞらえています。当時「ベンダーごとにイメージ形式が乱立する未来」を避けたように、今度は「エージェントに何を許すか」の記述形式が乱立するのを防ぎたい、という狙いです。
仕様リポジトリ:docker/sandbox-kit-spec
以下は今回の調査範囲の公式情報では確認できませんでした。導入検討時には直接確認が必要です。
| 項目 | 状況 |
|---|---|
| クラウドのホスティングリージョン・データ所在地 | 公式ブログ・ドキュメント・FAQ に記載を見つけられず不明。国内法規や顧客契約上の制約がある場合は要確認 |
| 基盤となるクラウド事業者 | 記載なく不明 |
| 起動時間 | 公式ブログ・ドキュメントでは具体的な数値を見つけられず不明 |
| SLA(稼働率保証) | 記載なく不明(Experimental 扱いのため、現時点では設定されていない可能性もあるが未確認) |
| チーム向け機能の提供時期 | FAQ で「初期リリースは個人利用」とあるのみで、時期は不明 |
なお、データ保持については FAQ に記載があり、サービスログは31日、生のテレメトリは12か月保持、スナップショット(一時停止時のものを含む)は7日間使われないと自動削除されるとのことです。
Cloud Sandboxes 単体で見ると、「クラウドのエージェント実行環境」自体は他社にも存在するサービスで、Docker 自身も「他にこの形で動くエージェントサンドボックスは我々の知る限りない」と主張しているのはローカルとクラウドを同一モデル・1コマンドで行き来できる点についてです。
ただ、実際に sbx move の仕様を読むと、ワークスペース・シークレット・ネットワークポリシー・L7フィルタが持ち越されないなど、「1コマンドで移動」の裏にはかなりの前提条件があります。ローカルで作り込んだ運用をそのままクラウドへ、というよりは、最初から「クラウドで長時間回すタスク」として設計し直す方が現実的だと感じました。
むしろ注目すべきは Kit 仕様の方です。AIエージェントに渡す権限が「誰の頭の中にもない」状態は、多くの開発現場で起きているはずです。これを OCI イメージとしてバージョン管理し、差分でレビューし、権限拡大を自動で止められるという発想は、Docker 製品を使うかどうかに関わらず、エージェント運用のあり方として参考になります。
Docker 公式ブログ
Docker 公式ドキュメント
その他