docker-agent-run について
Docker Agent の実行を扱うスキルで、安全モード、サンドボックス、エイリアス、ワークツリー、トラブルシューティングを説明します。既存設定でエージェントを実行する方向けで、設定の作成やデプロイは対象外です。
主な機能
- 01対話型またはヘッドレスでの実行
- 02ツール呼び出しの承認モード選択
- 03サンドボックス VM 内での実行分離
- 04エイリアスと Git ワークツリーの管理
- 05認証情報や実行障害の調査
活用シーン
- 01CI で restricted モードを使った実行
- 02Git ワークツリーでの変更分離
- 03サンドボックスポリシーで接続先を許可
- 04モデル認証情報の不足を調査
MCP 対応
ローカル stdio MCP サーバーとサンドボックスの境界、および MCP 連携先のネットワーク許可設定を扱います。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ docker/ skills --skill docker-agent-runインストール後、Claude Code で/docker-agent-runを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skill.yamlagents/openai.yamlchecks/verification.mdreferences/safety-and-sandbox.mdsources.md詳細
Docker Agent:エージェントの実行と運用
概要
このスキルでは、Docker Agent の運用面を扱います。ローカル設定、エイリアス、またはレジストリー参照に対して docker agent run を実行する方法、ツール呼び出しに対してエージェントにどの程度の自律性を与えるか、サンドボックス VM で隔離する方法、実行が失敗する原因の診断方法について説明します。ここでは、agent.yaml がすでに存在することを前提としています。作成方法については「関連スキル」を参照してください。
このスキルを使用する場合
次の場合にこのスキルを有効にしてください。
- ユーザーがエージェントを対話形式またはヘッドレス(
--exec)で実行したい場合。 - ユーザーがツール呼び出しに対する
--safety、--yolo、または承認動作を選択またはデバッグしている場合。 - ユーザーが
--sandboxでエージェントのシェル/ファイルシステムへのアクセスを隔離したい場合、またはサンドボックスのネットワークポリシーエラーが発生した場合。 - ユーザーが再利用可能なショートカット(
docker agent alias)、スコープ付きの git ワークツリー(--worktree)を使いたい場合、または認証情報/モデルの利用可否をデバッグしている場合(docker agent doctor)。
このスキルを使用しない場合
次の場合はこのスキルを使用しないでください。
docker agent run --sandboxではなく、単独のsbx run/create/stop/rmを使用するタスクの場合は、docker-sandboxes-lifecycleを使用してください。- 単独の
sbx policyまたはsbx secretの設定タスクの場合は、docker-sandboxes-network-credentialsを使用してください。リクエストで「自分のサンドボックス」とだけ述べられている場合は、コマンドを推奨する前に、どの CLI を使っているか確認してください。 agent.yaml自体の作成または編集(モデル、ツールセット、sub_agents)の場合は、docker-agent-configを使用してください。- エージェントをサーバーとして公開する(
serve)、レジストリー経由で共有する(share)、または評価する(評価セッション、--baseline回帰ゲート)場合は、docker-agent-deployを使用してください。
基本的なガイダンス
安全性モード
docker agent runは 4 つの--safetyモードをサポートします。タスクを完了できる範囲で、最も制限の厳しいモードを選んでください。strict— すべてのツール呼び出しの前に承認を求めます。balanced— 安全と分類された呼び出しは自動承認し、それ以外は承認を求めます。restricted— 安全な呼び出しは自動承認し、それ以外は拒否します。プロンプトに人間が応答できない、無人/CI 実行で使用してください。autonomous— すべてを自動承認します。--yoloと同等です。
- 無人実行(cron、CI、サーバーエンドポイント)を、既定で
autonomous/--yoloにしないでください。無人実行ではrestrictedを使用し、予期しないツール呼び出しが未確認のまま実行されるのではなく、安全側に倒れて失敗するようにしてください。autonomous/--yoloは、サンドボックス化された、または完全に信頼できる対話セッションでのみ使用してください。# CI-safe: unreviewed tool calls are denied, not silently approved. docker agent run --exec --safety restricted ./agent.yaml "Triage the failing test" - 呼び出し元が忘れずに済むよう、エイリアスに安全性の既定値を設定してください。また、
docker agent runで明示的に指定した CLI の--safety/--yoloは、引き続きエイリアスより優先されることを明記してください。docker agent alias add safe-coder myorg/coder --safety balanced
サンドボックスによる隔離
--sandboxを指定すると、別途前提条件としてインストールと設定が必要なsbxCLI が管理する、隔離されたマイクロ VM 内でエージェントが実行されます。組み込みツールセットが開始するすべてのシェル、ファイルシステム、プロセスのアクティビティは VM 内で実行されます。マウントされるのは作業ディレクトリと、--no-kitを指定しない場合はステージングされたスキル/プロンプトファイルの「キット」のみです。例外: エージェントで宣言されたローカルの stdio MCP サーバーは、サンドボックス VM の外部でホストプロセスとして実行されます。そのような MCP サーバーは、サンドボックス化されているものではなく、信頼されたホスト統合として扱ってください。docker agent run --sandbox ./agent.yaml- サンドボックスのネットワークプロキシはデフォルトで拒否します。モデルプロバイダー、
models.dev、およびツールセットリゾルバーが推定できるホストのみが許可されます。カスタム MCP サーバーやサードパーティ API では、明示的な許可リスト項目が必要になることがよくあります。実行のたびに再検出せずに済むよう、許可リストに永続的に追加してください。docker agent sandbox allow api.example.com docker agent sandbox list docker agent sandbox deny api.example.com - エージェントを実行するたびに
--sandboxを忘れずに指定する代わりに、エージェント自身のagent.yamlにruntime: {sandbox: true}を設定しておくことを推奨します。CLI で明示的に--sandbox=falseを指定すれば、1 回のデバッグ実行に限り、引き続き設定の既定値を上書きできます。 - サンドボックスは同じワークスペースからの実行間で保持され、再利用されます。セッション終了時に破棄されるわけではありません。実行のたびにクリーンな VM が用意されるとは考えないでください。新しい VM が必要な場合は、マウントセット(たとえば新しいキット)を変更して再作成を促してください。
エイリアスとデフォルトエージェント
- ショートカットを一度登録すれば、パスの代わりに名前で実行できます。
docker agent alias add code myorg/notion-expert docker agent run code - エージェント引数を指定せずローカルで実行すると、
docker agent runは現在のディレクトリでdocker-agent.yaml、次にdocker-agent.yml、次にdocker-agent.hclを検索します (最初に見つかったものが使用されます)。いずれも存在しない場合に限り、defaultエイリアスを解決し、該当するものがなければ組み込みのデフォルトエージェントを使用します。 これらのスキルにあるagent.yamlの例ではファイル名を明示的に指定しています。agent.yamlは自動検出の対象名ではありません。 - プロジェクト設定のないディレクトリでのフォールバックを設定するには、
defaultエイリアスを使います。プロジェクト設定が存在する場合でもこれを選択するには、defaultを明示的に指定します。docker agent alias add default ./my-agent.yaml docker agent run default docker agent run <alias>の CLI フラグは、エイリアスに保存されたオプションよりも常に優先されます (例:docker agent run yolo-coder --yolo=false)。
ワークツリー
--worktree(-w)を使うと、新しい Git ワークツリー内でエージェントを実行し、 現在のチェックアウトからエージェントによるファイル編集を分離できます。 対話型セッションでは、未コミットの変更、未追跡ファイル、新しいコミットがないクリーンなワークツリーは、 セッション終了時に自動的に削除されます。変更がある場合は、保持するか削除するかを尋ねられます。 ヘッドレス実行(--exec)では、状態にかかわらずワークツリーは自動削除されず、 確認できるようそのまま残されます。docker agent run ./agent.yaml --worktree=auth-refactor --worktree-base origin/main--worktreeは--remoteや--sandboxと併用できません。ワークツリーでの実行を再開するには、--session -1(またはセッション ID)を指定します。ワークツリーはすでに存在するためエラーになるので、--worktreeを再度指定しないでください。
トラブルシューティング
- 「No model is currently available」または「model ... is not pulled」は、
エージェントのプロバイダーに使用可能な認証情報がないか(
dmr/の場合は)モデルがプルされていないことを意味します。 YAML を変更する前に、まずdocker agent doctor ./agent.yamlを実行してください。 解決されたモデル/プロバイダーと、認証情報が見つかったかどうかが報告されます。 認証情報がない場合は、プロバイダーの API キーを環境変数に設定してください。 DMR モデルがない場合は、docker model pull <model>を実行してください。 タスクを再試行する前に、もう一度doctorを実行してください。 - 計画を説明するだけで実行しないエージェントは、たいてい必要なツールが不足しています
(
agent.yamlにtype: shellまたはtype: todoを追加してください)。 モデルの障害ではありません。この場合はdocker-agent-configに引き継いでください。 - サンドボックス実行中の
403 Blocked by network policyエラーは、 接続先が許可リストに登録されていないことを意味します。docker agent sandbox allow <host>を使用してください。
関連スキル
sbxの単独のライフサイクルコマンドについては、docker-sandboxes-lifecycleを使用してください。sbx policyとsbx secretの単独の操作については、docker-sandboxes-network-credentialsを使用してください。- 基盤となる
agent.yaml(モデル、ツールセット、sub_agents)の作成や変更については、docker-agent-configを使用してください。 - エージェントの提供、共有、評価については、
docker-agent-deployを使用してください。
参考資料
references/safety-and-sandbox.md— セーフティモードとフラグの相互作用をまとめた表、およびサンドボックスの信頼境界の詳細。references/sources.md— このスキル内の各ルールの出典。
アセット
- なし。
チェック
checks/verification.md—docker agent runの呼び出しを検証する手順書。
コメント
Markdown 対応