OpenClaw を Docker でインストール:ステップバイステップと導入方法 jour
このガイドでは、PCまたはVPSにDocker ComposeでOpenClawをインストールする方法を解説します。公式リポジトリの取得、オンボーディング、制御インターフェースへの初回接続から、更新、何も残さずにアンインストールする方法までを扱います。コマンドはプロジェクトのドキュメントに基づいていますが、ドキュメントは頻繁に更新されるため、貼り付ける前に読み直してください。このガイドには、当サイト独自のテスト結果もインストール所要時間も含まれていません。すべての手順に共通するルールは、OpenClawのゲートウェイを決してインターネットからアクセスできる状態にしないことです。
#OpenClaw をインストールする:公式スクリプトか Docker か?
このプロジェクトでは、OpenClawのインストール方法が2通り説明されています。1つ目は、スクリプトを使ってopenclawコマンドをシステムに直接インストールする方法です。2つ目は、ゲートウェイ(メッセージングサービスとモデルをつなぐ中核プロセス)をDockerコンテナ内で実行する方法です。どちらの方法でも、同じソフトウェアと、onboardingと呼ばれる同じ初期設定ウィザードを利用できます。
- 公式スクリプト
- macOS、Linux、WSL2を使う個人用マシンでは、これが最も手早い方法です。スクリプトがopenclawコマンドをインストールし、必要ならNode.jsもインストールします。その後、初期設定でゲートウェイをユーザーセッションのサービスとして登録します。
- Docker Compose
- ゲートウェイはコンテナ内で動作し、ホストにはDocker以外はインストールされません。VPSで使う場合や、すべてを一度の操作で削除できるようにしたい場合に実用的な方法です。ドキュメントでは、この方法は任意の選択肢として紹介されています。
- Dockerが変更しない点
- コンテナは、ホストからマウントされた設定フォルダとワークスペース、そしてネットワークへの完全なアクセスを引き続き保持します。役に立つ仕切りではありますが、金庫ではありません。
このガイドでは、この先はDockerを使う方法で進め、更新とアンインストールの手順ではスクリプト方式での対応するコマンドも再掲します。ツール自体を使う意義についてまだ迷っている場合は、当サイトの「OpenClawとは?」ページでその点を解説しています。ここではインストールを進めます。
#前提条件
あなたのマシンで動作するエージェント:エージェント型 Cline、MCP、n8n + Ollama、ローカル自動化。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
ゲートウェイ自体のリソース消費は少なく、メッセージを中継してモデルを呼び出します。以下の要件は、主にDockerとイメージのビルドに関するものです。
- Docker および Compose v2
- macOSおよびWindows(WSL2)でDocker Desktop、またはLinuxでDocker EngineにComposeプラグインを併用。コマンドはdocker composeとし、スペースを含みます。旧バージョン1のdocker-composeは使用できません。
- Git
- Dockerfile、docker-compose.yml、インストールスクリプトを含む公式リポジトリをクローンするために使います。
- メモリ
- ドキュメントでは、イメージのビルドに少なくとも2GBのRAMが必要とされています。RAMが1GBのホストでは、メモリ不足によりシステムがコンパイルを中断することがあります(終了コード137)。後述のビルド済みイメージを使えば、この手順を省けます。
- ディスク
- Dockerイメージやログ用のスペースを確保してください。ドキュメントには数字が記載されていませんので、docker system dfで容量を監視してください
- 1つのモデル
- オンラインプロバイダーのAPIキー(支出上限付き)またはローカルモデルのいずれか。ローカルモデルの接続は別問題であり、本ガイドでは扱いません。
- VPS上で
- SSH鍵によるアクセスと、SSH接続だけを受け入れるように設定されたプロバイダーのファイアウォール。後で説明するように、それ以外のポートを開く必要はありません。
Windowsで作業する場合は、WSL2のターミナルから実行してください。インストールスクリプトはシェルスクリプトであり、ドキュメントはWindowsユーザーに対してWSL2への導入を推奨しています。どのマシンでも、個人のドキュメントやパスワードを保存しているマシンを避けてください。コマンドを実行できるエージェントは、専用マシン、仮想マシン、またはレンタルサーバーに配置されるべきです。
#Docker ComposeでOpenClawをステップごとにインストール
Docker のインストールは、リポジトリに提供されているスクリプトに基づいています。このスクリプトは、イメージの準備、オンボーディング、ゲートウェイの起動を順次実行します。以下の4つの手順は、この順序に従っています。
#1. オフィシャルリポジトリをクローンする
アドレスを1文字ずつ確認してください。GitHubのopenclaw組織であり、似た名前のリポジトリではありません。私たちが把握しているドキュメントでは、Dockerのインストールスクリプトはdocker-setup.shという名前で、リポジトリのルートにあります。このプロジェクトではファイル配置が頻繁に変更されるため、最近のバージョンではscripts/docker/の下に置かれている場合もあります。次のコマンドで、ご自身の環境ではどちらの場所にあるかを確認できます。
#2. ビルド済みイメージを使うか、ローカルでビルドするかを選ぶ
デフォルトでは、スクリプトはお使いのマシン上でDockerfileからイメージをビルドし、openclaw:localという名前を付けます。クローンしたばかりのコードを自分でコンパイルするため、これが最も透明性の高い方法ですが、メモリと計算時間が必要です。別の方法として、スクリプトを実行する前にOPENCLAW_IMAGE変数を設定し、プロジェクトがGitHubのレジストリに公開しているイメージをダウンロードすることもできます。
latest タグは、公開された最新バージョンを追従します。サーバーでは、リポジトリのリリースページにある具体的なバージョン番号に置き換えるほうがよいでしょう。そうすれば更新するタイミングを自分で決められ、問題が起きた場合に戻すべきバージョンも分かります。
#3. インストールスクリプトを実行する
ドキュメントによると、このスクリプトは5つの処理を順次実行します。
- 画像
- ローカルにイメージを構築するか、OPENCLAW_IMAGEが定義されている場合にダウンロードします。
- Onboarding
- 一時的なコンテナ内で設定アシスタントを起動します。
- トークン
- ゲートウェイのアクセストークンを生成し、リポジトリのルートにある .env ファイルに書き込みます。
- 起動
- Docker Composeを使い、openclaw-gatewayというサービス名でゲートウェイを起動します。
- データ
- 設定とワークスペースはホスト側の ~/.openclaw および ~/.openclaw/workspace に保存されます。これらのディレクトリはコンテナの削除後に残ります。
#4. オンボーディングの質問に答える
セットアップアシスタントは、モデル、メッセージングサービス、ゲートウェイについて質問します。最後のゲートウェイに関する部分では、スクリプトがコンテナ環境で想定される回答を表示します。これらは通常のインストール時の回答とは異なり、最初の回答については説明が必要です。
- Gateway bind : lan
- コンテナ内では、ゲートウェイがDockerネットワークのインターフェースで待ち受ける必要があります。そうしないと、ホスト側に公開したポート経由の通信がゲートウェイに届きません。この設定だけでは、外部から何にアクセスできるかは決まりません。それはホスト側の設定で決まります。VPSのセクションを参照してください。
- ゲートウェイ認証:トークン
- ゲートウェイのインターフェースとAPIにアクセスするには、トークンが必要です。
- ゲートウェイトークン
- スクリプトが今表示したトークンを使い、.envファイルの値と一致するようにしてください。
- Tailscale exposure : Off
- 自動的に外部へ公開されることはありません。リモートアクセスを有効にするかどうかは、影響を理解したうえで後から決めます。
- Install Gateway daemon : No
- この構成では、コンテナを再起動するのはシステムサービスではなく、Docker Composeです。
モデル用には、メインのAPIキーではなく、利用予算に上限を設けたAPIキーを指定してください。メッセージングの設定はスキップし、ゲートウェイの動作を確認してから戻って設定できます。コマンドの変換ルールを覚えておいてください。ドキュメントにあるopenclawで始まるコマンドは、ここでは先頭にdocker compose run --rm openclaw-cliを付けて実行します。
#ゲートウェイが動作していることを確認する
ほかのものを接続する前に、コンテナが起動していることと、ログにエラーが出ていないことを確認してください。
次に、同じマシンのブラウザで操作画面を開き、その設定にトークンを貼り付けてください。リンクが分からなくなった場合は、dashboardコマンドで再表示できます。このコマンドはブラウザを開こうとはしません。
2つの組み込みチェックで、確認を補います。1つ目はインストールと設定を診断し、2つ目は危険な設定を点検します。設定を変更するたびに、両方を再実行してください。
最後に、.envファイルを保護してください。このファイルにはゲートウェイのトークンが含まれています。このトークンを持つ人は誰でもエージェントを操作でき、ひいてはエージェントがアクセスできるものすべてを操作できます。chmod 600 .envを実行すると、読み取りを自分のアカウントだけに制限できます。Gitリポジトリにコピーしたり、スクリーンショットに写したりしないでください。
#VPS上のOpenClaw:ゲートウェイを公開しない
ルーターの背後にあるPCでは、Dockerで公開されたポートはローカルネットワーク内に留まります。VPSでは、マシンにパブリックアドレスが割り当てられており、アドレスを指定せずに公開されたポートはインターネット全体からアクセス可能になります。2026年初頭、研究者たちはこの方法でアクセス可能なOpenClawゲートウェイが数千件あることを特定しました。トークンはアクセスを保護しますが、1つの脆弱性があればそれを回避できます。2026年1月末に修正された脆弱性CVE-2026-25253は、まさにトークンを盗むことを可能にしていました。適切な対応は、何も公開しないことです。
応答が 0.0.0.0 で始まる場合、そのポートはすべてのインターフェースで公開されています。最も外側からコンテナに最も近いところまで、三つの保護策を重ねて適用します。
- プロバイダーのファイアウォール
- ホスティング事業者の管理コンソールで提供されるフィルタリングは、通信がマシンに届く前、つまりDockerに届く前に適用されます。ここではSSHの通信だけを許可してください。
- 127.0.0.1でのポート公開
- 以下のファイルを使って、Dockerがホストのローカルアドレスにだけポートを公開するよう設定してください。
- トンネル経由でのアクセス
- SSHトンネルまたはVPNを通じて管理画面に接続してください。公開アドレス経由では決して接続しないでください。
このファイルは当サイトが用意した例であり、OpenClawのドキュメントからの抜粋ではありません。使用する前に、サービス名とポート一覧を、使用中のバージョンのdocker-compose.ymlと比較してください。!overrideタグはポート一覧に項目を追加するのではなく、一覧全体を置き換えます。使用にはDocker Compose 2.24.4以降が必要です。このファイルをdocker-compose.ymlと同じディレクトリに置き、docker compose up -d openclaw-gatewayでコンテナを再作成してから、もう一度確認してください。今度は確認結果に127.0.0.1:18789が表示されるはずです。
このトンネルが開いている間は、お使いのコンピュータでhttp://127.0.0.1:18789/にアクセスすると、サーバーのゲートウェイにつながります。一方、メッセージングサービスは通常の動作モードでは受信用ポートを一切必要としません。WhatsApp、Telegram、Discordでは、ゲートウェイ側から外向きの接続を開始します。したがって、ドメイン名を使って管理インターフェースを公開する理由はありません。考え方はモデルサーバーの場合と同じで、詳しくは当サイトのOllamaサーバーの安全対策ガイドで説明しています。
#OpenClawを更新する
このプロジェクトは頻繁に新しいバージョンを公開しており、脆弱性を修正するものもあります。インストールしたまま何か月も放置することは、時間の節約ではなくリスクです。Dockerでは、イメージを置き換えてコンテナを再作成すれば更新できます。~/.openclawにあるデータはそのまま保持されます。
- 01データフォルダをバックアップ更新を行う前には必ず~/.openclawをアーカイブしてください。新しいバージョンでは設定が移行される可能性があり、確実に元の状態に戻すには、更新前の状態のコピーが必要です。
- 02新しいバージョンを取得git pull でリポジトリを更新して、最新の Dockerfile と Compose ファイルを取得してください。その後、インストール時に選んだ方法に応じて、ローカルのイメージを再ビルドするか、公開されているイメージをダウンロードしてください。
- 03コンテナを再作成するopenclaw-gateway サービスを再起動してください。Docker Compose は、イメージが異なる場合にすぐにコンテナを置き換えます。
- 04制御するdoctorを実行し、ログの末尾の数行を読んで、利用しているメッセージサービスからテストメッセージを送信してください。
公開済みのコンテナイメージを使う方式では、.env ファイルに OPENCLAW_IMAGE の行があることが前提です。インストール時にこの変数が設定されていた場合、スクリプトがその行を追加します。バージョン番号を固定している場合は、まずこの行を変更してください。元に戻すには、以前の番号に戻してコンテナを再作成し、その間に設定が移行されていた場合はバックアップを復元してください。
スクリプト方式では、組み込みコマンドで更新し、その後に同じ診断を実行します。
#OpenClawを正しくアンインストールする
完全なアンインストールでは、三つの要素を削除します。コンテナとイメージ、ディスク上のデータ、そしてアシスタントに与えていたアクセス権です。三つ目は忘れられがちです。
~/.openclawフォルダには、設定、APIキー、メッセージングのセッション、アシスタントのメモリが保存されています。削除すると元に戻せません。いつか再び使うつもりがある場合や、アシスタントが記録した内容を読み返したい場合は、アーカイブを残してください。一方、クローンしたリポジトリには、.envファイルとそのトークンが含まれています。
- APIキー
- OpenClaw に渡したキーを、モデル提供元の側で失効させてください。ローカルのファイルを削除しても、そのキーは無効になりません。
- Telegram ボットまたは Discord ボット
- サービスの管理ツールから、ボットのトークンを失効させるか、ボットを削除してください(Telegram では BotFather、Discord では開発者ポータル)。
- アプリで接続済みデバイスの一覧を開き、ゲートウェイに対応するデバイスの接続を解除してください。
- ネットワークアクセス
- 今回のために作成したファイアウォールルールやトンネルを削除するか、追加したマシンをVPNから外してください。この用途だけのために借りたVPSであれば、サーバーの契約を解約してください。
スクリプト方式では、組み込みのアンインストールコマンドがサービスを削除し、データも削除するかどうかを確認します。その後、コマンド自体は別途削除する必要があります。
#トラブルシューティング:よくある問題
- 「unauthorized」または「pairing required (1008)」
- ブラウザはまだゲートウェイに承認されていません。アクセスリンクを再表示し、以下のコマンドでデバイスを一覧表示して承認してください。このケースはDocker環境やトンネル経由の接続でよく起こります。接続元がコンテナのローカルアドレスではないためです。
- ビルド中断、コード137
- メモリ不足のため、システムがコンパイルを強制終了しました。OPENCLAW_IMAGEを使って公開済みのイメージに切り替えるか、RAMを少なくとも2 GB搭載したマシンを使用してください。
- /home/node/.openclawへのアクセスが拒否されました
- このイメージは、IDが1000のユーザー node として実行されます。ホストからマウントするディレクトリは、このユーザーが所有している必要があります:sudo chown -R 1000:1000 ~/.openclaw。
- ポート18789が既に使用されています
- 別のサービス、または以前にインストールしたOpenClawがポートを使用しています。そのサービスを停止するか、.envファイル内のOPENCLAW_GATEWAY_PORTを変更してから、コンテナを再作成してください。
- docker compose introuvable
- 古いdocker-composeバイナリを使っているか、Composeプラグインがインストールされていません。お使いのディストリビューションのCompose v2プラグインをインストールしてください。
- ローカルモデルに接続できません
- コンテナ内では、localhostはホストではなくコンテナ自身を指します。そのため、ホスト側でhttp://localhost:11434で待ち受けているOllamaには、そのままではゲートウェイからアクセスできません。この設定はモデルの接続に関するもので、このガイドの範囲外です。
上記のどれにも当てはまらない場合は、まずサービスのログを確認するのが最善です。その次にdoctorコマンドを実行してください。ほかで解決策を探す前に、見つけた回答の日付を確認してください。ClawdbotやMoltbotに言及している回答は、古いコマンドについて説明しています。
#手元に置いておきたい公式情報源
このガイドは独自のテストに基づいておらず、所要時間、測定値、数値による比較は一切掲載していません。コマンドはプロジェクトのドキュメントに沿っていますが、スクリプト名、変数、オンボーディングの手順など、ドキュメントの内容はバージョンによって変わります。このページとドキュメントの内容に食い違いがある場合は、ドキュメントを正としてください。
#さらに詳しく
インストールは作業の前半にすぎません。エージェントには設定、監視、比較が必要です。本サイトの以下のガイドでは、ここで扱った概念をさらに掘り下げています。
- OpenClaw:概要と導入の必要性
- インストール前に判断するために、ゲートウェイの仕組み、用途、リスクを解説。https://quelllm.fr/guide/openclaw-c-est-quoi
- Ollamaサーバーのセキュリティを強化する
- ファイアウォール、ローカルでの待ち受け、リモートアクセス:外部に公開する範囲を最小限にするという同じ考え方を、モデルサーバーにも適用します。https://quelllm.fr/guide/securiser-serveur-ollama
- Docker Composeでプロダクション環境にLLMをデプロイ
- 継続稼働するスタックのためのComposeファイル、再起動、ログ、バックアップ。https://quelllm.fr/guide/deployer-llm-docker-compose-production
- Docker で Ollama をインストール
- 同じマシンまたは別のマシンで、モデルサーバーをコンテナ内で実行するためのガイドです。 https://quelllm.fr/guide/ollama-docker-installation-guide
- DockerでOllamaと連携するAgent Zero
- コンテナで提供される、別のセルフホスト型エージェントです。アプローチを比較するのに役立ちます。https://quelllm.fr/guide/agent-zero-ollama-docker
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。