その他のインストール方法
Docker
Dockerはオプションです。コンテナ化ゲートウェイが必要な場合、またはDockerフローを検証したい場合にのみ使用してください。
Dockerは私に適していますか?
- はい: 分離された使い捨てのゲートウェイ環境が必要な場合、またはローカルインストールなしでホスト上でOpenClawを実行したい場合。
- いいえ: 自身のマシンで実行しており、最も高速な開発ループを望む場合。代わりに通常のインストールフローを使用してください。
- サンドボックス化に関する注意: エージェントサンドボックス化もDockerを使用しますが、ゲートウェイ全体をDocker内で実行する必要はありません。詳細はサンドボックス化を参照してください。
このガイドでは以下を扱います:
- コンテナ化ゲートウェイ (Docker内の完全なOpenClaw)
- セッションごとのエージェントサンドボックス (ホストゲートウェイ + Dockerで分離されたエージェントツール)
サンドボックス化の詳細: サンドボックス化
要件
- Docker Desktop (またはDocker Engine) + Docker Compose v2
- イメージビルド用に少なくとも2 GBのRAM (
pnpm installが1 GBホストでOOMキルされ、終了コード137になる可能性があります) - イメージ + ログ用の十分なディスク容量
- VPS/パブリックホストで実行する場合、ネットワーク公開のためのセキュリティ強化、特にDockerの
DOCKER-USERファイアウォールポリシーを確認してください。
コンテナ化ゲートウェイ (Docker Compose)
クイックスタート (推奨)
ℹ️ ここでのDockerのデフォルトは、ホストエイリアスではなくバインドモード (
lan/loopback) を想定しています。gateway.bindではホストエイリアス (0.0.0.0やlocalhostなど) ではなく、バインドモードの値 (例:lanまたはloopback) を使用してください。
リポジトリのルートから:
./docker-setup.sh
このスクリプトは以下を行います:
- ゲートウェイイメージをローカルでビルド (または
OPENCLAW_IMAGEが設定されている場合はリモートイメージをプル) - オンボーディングウィザードを実行
- オプションのプロバイダーセットアップのヒントを表示
- Docker Compose経由でゲートウェイを起動
- ゲートウェイトークンを生成し
.envに書き込み
オプションの環境変数:
OPENCLAW_IMAGE— ローカルビルドの代わりにリモートイメージを使用 (例:ghcr.io/openclaw/openclaw:latest)OPENCLAW_DOCKER_APT_PACKAGES— ビルド中に追加のaptパッケージをインストールOPENCLAW_EXTENSIONS— ビルド時に拡張機能の依存関係を事前インストール (スペース区切りの拡張機能名、例:diagnostics-otel matrix)OPENCLAW_EXTRA_MOUNTS— 追加のホストバインドマウントを追加OPENCLAW_HOME_VOLUME—/home/nodeを名前付きボリュームで永続化OPENCLAW_SANDBOX— Dockerゲートウェイサンドボックスブートストラップをオプトイン。明示的な真値のみが有効化:1,true,yes,onOPENCLAW_INSTALL_DOCKER_CLI— ローカルイメージビルドのためのビルド引数パススルー (1はイメージ内にDocker CLIをインストール)。docker-setup.shはローカルビルドでOPENCLAW_SANDBOX=1の場合、これを自動的に設定します。OPENCLAW_DOCKER_SOCKET— Dockerソケットパスを上書き (デフォルト:DOCKER_HOST=unix://...パス、それ以外の場合は/var/run/docker.sock)OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1— 非常用: CLI/オンボーディングクライアントパス用の信頼されたプライベートネットワークws://ターゲットを許可 (デフォルトはループバックのみ)OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0— WebGL/3D互換性が必要な場合、コンテナブラウザの強化フラグ--disable-3d-apis,--disable-software-rasterizer,--disable-gpuを無効化。OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0— ブラウザフローで拡張機能が必要な場合に拡張機能を有効に保つ (デフォルトではサンドボックスブラウザで拡張機能は無効化されます)。OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=— Chromiumレンダラープロセス制限を設定;0に設定するとフラグをスキップしChromiumのデフォルト動作を使用。
完了後:
- ブラウザで
http://127.0.0.1:18789/を開きます。 - トークンをControl UI (設定 → トークン) に貼り付けます。
- URLを再度確認する必要がありますか?
docker compose run --rm openclaw-cli dashboard --no-openを実行してください。
Dockerゲートウェイのエージェントサンドボックスを有効化 (オプトイン)
docker-setup.sh はDockerデプロイメント用に agents.defaults.sandbox.* をブートストラップすることもできます。以下で有効化:
export OPENCLAW_SANDBOX=1
./docker-setup.sh
カスタムソケットパス (例: rootless Docker):
export OPENCLAW_SANDBOX=1
export OPENCLAW_DOCKER_SOCKET=/run/user/1000/docker.sock
./docker-setup.sh
注意:
- スクリプトはサンドボックスの前提条件を通過した後にのみ
docker.sockをマウントします。 - サンドボックスセットアップが完了できない場合、スクリプトは再実行時の古い/壊れたサンドボックス設定を避けるため
agents.defaults.sandbox.modeをoffにリセットします。 Dockerfile.sandboxが欠落している場合、スクリプトは警告を表示して続行します; 必要に応じてscripts/sandbox-setup.shでopenclaw-sandbox:bookworm-slimをビルドしてください。- ローカル以外の
OPENCLAW_IMAGE値の場合、イメージにはサンドボックス実行用のDocker CLIサポートが既に含まれている必要があります。
自動化/CI (非対話型、TTYノイズなし)
スクリプトとCIでは、-T でCompose疑似TTY割り当てを無効化:
docker compose run -T --rm openclaw-cli gateway probe
docker compose run -T --rm openclaw-cli devices list --json
自動化でClaudeセッション変数をエクスポートしない場合、未設定のままにすると docker-compose.yml でデフォルトで空値に解決され、繰り返される「変数が設定されていません」警告を回避します。
共有ネットワークセキュリティに関する注意 (CLI + ゲートウェイ)
openclaw-cli は network_mode: "service:openclaw-gateway" を使用するため、CLIコマンドはDocker内で 127.0.0.1 経由でゲートウェイに確実に到達できます。これを共有信頼境界として扱ってください: ループバックバインドはこれら2つのコンテナ間の分離ではありません。より強力な分離が必要な場合は、バンドルされた openclaw-cli サービスではなく、別のコンテナ/ホストネットワークパスからコマンドを実行してください。CLIプロセスが侵害された場合の影響を軽減するため、compose設定は openclaw-cli で NET_RAW/NET_ADMIN をドロップし、no-new-privileges を有効にします。ホスト上に設定/ワークスペースを書き込みます:
~/.openclaw/~/.openclaw/workspace
VPSで実行していますか? Hetzner (Docker VPS) を参照してください。
リモートイメージを使用 (ローカルビルドをスキップ)
公式の事前ビルドイメージは以下で公開されています:
イメージ名 ghcr.io/openclaw/openclaw を使用してください (同様の名前のDocker Hubイメージではありません)。一般的なタグ:
main—mainからの最新ビルド- `` — リリースタグビルド (例:
2026.2.26) latest— 最新の安定リリースタグ
ベースイメージメタデータ
メインDockerイメージは現在以下を使用しています:
node:22-bookworm
dockerイメージは現在OCIベースイメージアノテーションを公開しています (sha256は例です):
org.opencontainers.image.base.name=docker.io/library/node:22-bookwormorg.opencontainers.image.base.digest=sha256:6d735b4d33660225271fda0a412802746658c3a1b975507b2803ed299609760aorg.opencontainers.image.source=https://github.com/openclaw/openclaworg.opencontainers.image.url=https://openclaw.aiorg.opencontainers.image.documentation=https://docs.openclaw.ai/install/dockerorg.opencontainers.image.licenses=MITorg.opencontainers.image.title=OpenClaworg.opencontainers.image.description=OpenClawゲートウェイおよびCLIランタイムコンテナイメージorg.opencontainers.image.revision=<git-sha>org.opencontainers.image.version=<tag-or-main>org.opencontainers.image.created=
参照: OCIイメージアノテーション リリースコンテキスト: このリポジトリのタグ付き履歴は、v2026.2.22 およびそれ以前の2026タグ (例: v2026.2.21, v2026.2.9) ですでにBookwormを使用しています。デフォルトでは、セットアップスクリプトはソースからイメージをビルドします。事前ビルドイメージをプルするには、スクリプト実行前に OPENCLAW_IMAGE を設定してください:
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./docker-setup.sh
スクリプトは OPENCLAW_IMAGE がデフォルトの openclaw:local ではないことを検出し、docker build の代わりに docker pull を実行します。その他すべて (オンボーディング、ゲートウェイ起動、トークン生成) は同じように動作します。docker-setup.sh はローカルの docker-compose.yml とヘルパーファイルを使用するため、リポジトリルートから実行されます。OPENCLAW_IMAGE はローカルイメージビルド時間をスキップします; compose/セットアップワークフローを置き換えるものではありません。
シェルヘルパー (オプション)
日々のDocker管理を容易にするため、ClawDock をインストール:
mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/shell-helpers/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
シェル設定に追加 (zsh):
echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
その後、clawdock-start, clawdock-stop, clawdock-dashboard などを使用してください。すべてのコマンドは clawdock-help を実行してください。詳細は ClawDock ヘルパーREADME を参照してください。
手動フロー (compose)
docker build -t openclaw:local -f Dockerfile .
docker compose run --rm openclaw-cli onboard
docker compose up -d openclaw-gateway
注意: docker compose ... はリポジトリルートから実行してください。OPENCLAW_EXTRA_MOUNTS または OPENCLAW_HOME_VOLUME を有効にした場合、セットアップスクリプトは docker-compose.extra.yml を書き込みます; 他の場所でComposeを実行する際にこれを含めてください:
docker compose -f docker-compose.yml -f docker-compose.extra.yml <command>
Control UIトークン + ペアリング (Docker)
「unauthorized」または「disconnected (1008): pairing required」が表示される場合、新しいダッシュボードリンクを取得し、ブラウザデバイスを承認してください:
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>
追加マウント (オプション)
追加のホストディレクトリをコンテナにマウントしたい場合、docker-setup.sh 実行前に OPENCLAW_EXTRA_MOUNTS を設定してください。これはDockerバインドマウントのカンマ区切りリストを受け取り、docker-compose.extra.yml を生成することで openclaw-gateway と openclaw-cli の両方に適用します。例:
export OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh
注意:
- パスはmacOS/WindowsのDocker Desktopと共有されている必要があります。
- 各エントリはスペース、タブ、改行なしで
source:target[:options]形式である必要があります。 OPENCLAW_EXTRA_MOUNTSを編集した場合、追加のcomposeファイルを再生成するためにdocker-setup.shを再実行してください。docker-compose.extra.ymlは生成されます。手動で編集しないでください。
コンテナホーム全体を永続化 (オプション)
/home/node をコンテナ再作成後も永続化したい場合、OPENCLAW_HOME_VOLUME 経由で名前付きボリュームを設定してください。これによりDockerボリュームが作成され、標準のconfig/workspaceバインドマウントを維持しながら /home/node にマウントされます。ここでは名前付きボリュームを使用してください (バインドパスではありません); バインドマウントの場合は OPENCLAW_EXTRA_MOUNTS を使用してください。例:
export OPENCLAW_HOME_VOLUME="openclaw_home"
./docker-setup.sh
追加マウントと組み合わせることもできます:
export OPENCLAW_HOME_VOLUME="openclaw_home"
export OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh
注意:
- 名前付きボリュームは
^[A-Za-z0-9][A-Za-z0-9_.-]*$に一致する必要があります。 OPENCLAW_HOME_VOLUMEを変更した場合、追加のcomposeファイルを再生成するためにdocker-setup.shを再実行してください。- 名前付きボリュームは
docker volume rmで削除されるまで永続化されます。
追加のaptパッケージをインストール (オプション)
イメージ内にシステムパッケージ (ビルドツールやメディアライブラリなど) が必要な場合、docker-setup.sh 実行前に OPENCLAW_DOCKER_APT_PACKAGES を設定してください。これによりイメージビルド中にパッケージがインストールされ、コンテナが削除されても永続化されます。例:
export OPENCLAW_DOCKER_APT_PACKAGES="ffmpeg build-essential"
./docker-setup.sh
注意:
- これはaptパッケージ名のスペース区切りリストを受け入れます。
OPENCLAW_DOCKER_APT_PACKAGESを変更した場合、イメージを再ビルドするためにdocker-setup.shを再実行してください。
拡張機能の依存関係を事前インストール (オプション)
独自の package.json を持つ拡張機能 (例: diagnostics-otel, matrix, msteams) は、初回ロード時にnpm依存関係をインストールします。代わりにそれらの依存関係をイメージに組み込みたい場合、docker-setup.sh 実行前に OPENCLAW_EXTENSIONS を設定してください:
export OPENCLAW_EXTENSIONS="diagnostics-otel matrix"
./docker-setup.sh
または直接ビルドする場合:
docker build --build-arg OPENCLAW_EXTENSIONS="diagnostics-otel matrix" .
注意:
- これは拡張機能ディレクトリ名 (
extensions/下) のスペース区切りリストを受け入れます。 package.jsonを持つ拡張機能のみが影響を受けます; それを持たない軽量プラグインは無視されます。OPENCLAW_EXTENSIONSを変更した場合、イメージを再ビルドするためにdocker-setup.shを再実行してください。