guide docker deployment security

DockerでOpenClawを実行する:ステップバイステップのデプロイメントガイド

OpenClaws.io Team

OpenClaws.io Team

@openclaws

March 6, 2026

6 分で読める

DockerでOpenClawを実行する:ステップバイステップのデプロイメントガイド

なぜDockerなのか?

DockerでOpenClawを実行すると、ベアメタルインストールに比べて3つの主要な利点があります:

  1. 1.セキュリティの隔離: エージェントはホストシステムへのアクセスが制限されたコンテナ内で実行されます。悪意のあるスキルやプロンプトインジェクションがファイルにアクセスしようとしても、コンテナ境界が被害範囲を制限します。
  2. 2.再現性: 同じDockerイメージが、あなたのノートパソコン、VPS、Raspberry Piのどのマシンでも同一に動作します。
  3. 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セットアップを使用します:

bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw

必要なディレクトリと設定を作成するセットアップスクリプトを実行します:

bash
bash docker-setup.sh
  • ~/.openclaw/ ——設定、SOUL.md、APIキー
  • ~/openclaw/workspace/ ——エージェントがアクセスできるファイル

コンテナ内でオンボーディングウィザードを実行します:

bash
docker compose run --rm openclaw-cli onboard

プロンプトに従ってAPIキーの設定とチャットプラットフォームの接続を行います。次にゲートウェイを起動します:

bash
docker compose up -d openclaw-gateway

エージェントがバックグラウンドで実行されています。

オプションB:ビルド済みイメージ

リポジトリのクローンが不要な場合は、公式のビルド済みイメージを使用します:

bash
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です:

yaml
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ファイルを作成します:

bash
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プロバイダーキーが必要です。

コンテナの管理

bash
# 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

セキュリティ強化

ファイルシステムアクセスを制限する

エージェントが実際に必要なディレクトリのみをマウントします。ホームディレクトリ全体のマウントは避けてください:

yaml
volumes:
  - ~/.openclaw:/root/.openclaw:rw     # Config (read-write)
  - ~/documents:/root/docs:ro           # Documents (read-only)

ネットワーク隔離

エージェントがローカルネットワークサービスにアクセスする必要がない場合は、ネットワークを制限します:

yaml
networks:
  openclaw-net:
    driver: bridge
    internal: false    # Set to true to block all external access

読み取り専用ルートファイルシステム

最大限のセキュリティのために、ルートファイルシステムを読み取り専用にし、特定のパスのみ書き込みを許可します:

yaml
read_only: true
tmpfs:
  - /tmp
  - /run

アップデート

OpenClawは頻繁にリリースされます。Dockerデプロイメントを更新するには:

bash
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をご覧ください。

最新情報を受け取る

新機能や連携情報をお届け。スパムなし、いつでも解除可能。