なぜDockerなのか?
DockerでOpenClawを実行すると、ベアメタルインストールに比べて3つの主要な利点があります:
- 1.セキュリティの隔離: エージェントはホストシステムへのアクセスが制限されたコンテナ内で実行されます。悪意のあるスキルやプロンプトインジェクションがファイルにアクセスしようとしても、コンテナ境界が被害範囲を制限します。
- 2.再現性: 同じDockerイメージが、あなたのノートパソコン、VPS、Raspberry Piのどのマシンでも同一に動作します。
- 3.簡単なクリーンアップ: 最初からやり直したい場合は、コンテナを削除して新しいものを立ち上げるだけです。残存ファイルも壊れたNode.jsインストールもありません。
前提条件
- •Docker Desktop(macOS/Windows)またはDocker Engine(Linux)
- •Docker Compose v2(Docker Desktopに含まれています)
- •コンテナに利用可能な最低2GB RAM
- •AI APIキー(Anthropic、OpenAI、またはその他のサポートされているプロバイダー)
クイックスタート
オプションA:公式Docker Compose(推奨)
OpenClawリポジトリをクローンして、組み込みのDockerセットアップを使用します:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
必要なディレクトリと設定を作成するセットアップスクリプトを実行します:
bash docker-setup.sh
- •
~/.openclaw/——設定、SOUL.md、APIキー - •
~/openclaw/workspace/——エージェントがアクセスできるファイル
コンテナ内でオンボーディングウィザードを実行します:
docker compose run --rm openclaw-cli onboard
プロンプトに従ってAPIキーの設定とチャットプラットフォームの接続を行います。次にゲートウェイを起動します:
docker compose up -d openclaw-gateway
エージェントがバックグラウンドで実行されています。
オプションB:ビルド済みイメージ
リポジトリのクローンが不要な場合は、公式のビルド済みイメージを使用します:
docker run -d \
--name openclaw \
--restart unless-stopped \
-v ~/.openclaw:/root/.openclaw \
-v ~/openclaw/workspace:/root/workspace \
-p 3000:3000 \
ghcr.io/openclaw/openclaw:latest
Docker Composeリファレンス
以下は本番環境向けの注釈付きdocker-compose.ymlです:
version: "3.8"
services:
openclaw-gateway:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "3000:3000" # Web UI
volumes:
- ~/.openclaw:/root/.openclaw # Config and data
- ~/openclaw/workspace:/root/workspace # Agent workspace
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- TZ=Asia/Shanghai # Set your timezone
mem_limit: 2g # Prevent runaway memory usage
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
同じディレクトリにAPIキーを含む.envファイルを作成します:
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
ANTHROPIC_API_KEY | はい* | Claude APIキー |
OPENAI_API_KEY | いいえ | GPT APIキー(OpenAIを使用する場合) |
OPENCLAW_PORT | いいえ | Web UIポート(デフォルト:3000) |
OPENCLAW_HOME | いいえ | コンテナ内のデータディレクトリ |
TZ | いいえ | スケジュールタスク用のタイムゾーン |
*少なくとも1つのAIプロバイダーキーが必要です。
コンテナの管理
# View logs
docker logs -f openclaw
# Stop the agent
docker compose stop
# Start the agent
docker compose up -d
# Restart after config changes
docker compose restart
# Update to latest version
docker compose pull
docker compose up -d
# Enter the container shell
docker exec -it openclaw bash
# Run CLI commands inside container
docker exec openclaw openclaw skill list
docker exec openclaw openclaw status
セキュリティ強化
ファイルシステムアクセスを制限する
エージェントが実際に必要なディレクトリのみをマウントします。ホームディレクトリ全体のマウントは避けてください:
volumes:
- ~/.openclaw:/root/.openclaw:rw # Config (read-write)
- ~/documents:/root/docs:ro # Documents (read-only)
ネットワーク隔離
エージェントがローカルネットワークサービスにアクセスする必要がない場合は、ネットワークを制限します:
networks:
openclaw-net:
driver: bridge
internal: false # Set to true to block all external access
読み取り専用ルートファイルシステム
最大限のセキュリティのために、ルートファイルシステムを読み取り専用にし、特定のパスのみ書き込みを許可します:
read_only: true
tmpfs:
- /tmp
- /run
アップデート
OpenClawは頻繁にリリースされます。Dockerデプロイメントを更新するには:
docker compose pull # Pull latest image
docker compose up -d # Recreate container with new image
docker image prune -f # Clean up old images
設定とデータはマウントされたボリュームに保持されるため、アップデートは非破壊的です。
トラブルシューティング
コンテナがすぐにクラッシュする: docker logs openclawでログを確認してください。一般的な原因:APIキーの欠落、メモリ不足、ポートの競合。
WhatsApp QRコードが表示されない: インタラクティブモードでオンボーディングを実行します:docker compose run --rm openclaw-cli onboard。QRコードにはレンダリングをサポートするターミナルが必要です。
マウントされたボリュームの権限エラー: ホストディレクトリが存在し、ユーザーが所有していることを確認します:mkdir -p ~/.openclaw ~/openclaw/workspace。
高いメモリ使用量: docker-compose.ymlでmem_limit: 2gを設定して、コンテナが過剰なRAMを消費するのを防ぎます。
詳細については、公式Dockerドキュメントとリポジトリのdocker-compose.ymlをご覧ください。