なぜDockerデプロイを選ぶのか
OpenClaw を長期的に安定運用したい場合、npm で直接インストールするよりも Docker デプロイのほうが適しています。環境の分離により依存関係の競合を防げること、ワンコマンドで起動・停止ができること、コンテナ再起動で自動復旧すること、バージョンアップがイメージタグの差し替えだけで済むことなど、明確なメリットがあります。
この記事では、Docker Compose によるデプロイをゼロから完成させます。個人サーバー、家庭用 NAS、クラウドの VPS いずれでも利用可能です。
事前準備
お使いのマシンに以下のツールがインストールされていることを確認してください。
- Docker Engine 24+
- Docker Compose v2+(最新版の Docker CLI にはすでに組み込まれています)
インストール状況の確認:
docker --version
docker compose version
Docker がまだ入っていない場合は、Docker 公式ドキュメント を参考にインストールしてください。
docker-compose.ymlを作成する
プロジェクト用のディレクトリを作り、Compose の設定ファイルを用意します。
mkdir -p ~/openclaw-docker && cd ~/openclaw-docker
以下の内容で docker-compose.yml を作成してください。
version: "3.8"
services:
openclaw:
image: openclaw/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "18789:18789"
volumes:
- ./config:/root/.config/openclaw
- ./data:/root/.openclaw
environment:
- NODE_ENV=production
- TZ=Asia/Shanghai
env_file:
- .env
この設定で行っていることは以下のとおりです。
- 公式イメージ
openclaw/openclaw:latestを使用 - Gateway のポート 18789 をホスト側にマッピング
- 設定ディレクトリとデータディレクトリをマウントして永続化
- タイムゾーンを上海に設定(必要に応じて変更可能)
.envファイルから機密性の高い環境変数を読み込み
環境変数を設定する
API キーなどの機密情報を格納する .env ファイルを作成します。
# .env
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxx
実際に使用するプロバイダーのキーだけ記入すれば十分です。.env ファイルには機密情報が含まれるため、バージョン管理システムにはコミットしないよう注意してください。
設定ファイルを作成する
config ディレクトリに OpenClaw のコア設定ファイルを作成します。
mkdir -p config
config/openclaw.json5 を以下の内容で作成してください。
{
// AI モデルプロバイダー設定
providers: {
anthropic: {
enabled: true,
defaultModel: "claude-sonnet-4-20250514"
}
},
// Gateway 設定
gateway: {
port: 18789,
host: "0.0.0.0" // Docker コンテナ内ではすべてのインターフェースをリッスンする必要があります
},
// チャンネル設定(必要に応じて有効化)
channels: {}
}
host は必ず 0.0.0.0 に設定してください。そうしないとコンテナの外部から Gateway にアクセスできません。
コンテナを起動する
準備が整ったら、サービスを起動しましょう。
docker compose up -d
コンテナの実行状態を確認します。
docker compose ps
openclaw コンテナが running 状態になっていれば正常です。
ログを確認する
リアルタイムでログを確認するには以下のコマンドを使います。問題の切り分けに役立ちます。
docker compose logs -f openclaw
直近 100 行だけ表示したい場合はこちらです。
docker compose logs --tail 100 openclaw
起動中に API 接続エラーが出る場合は、たいていキーの設定ミスが原因です。.env ファイルのキーが正しいか確認してください。
日常の運用操作
サービスの停止:
docker compose down
サービスの再起動:
docker compose restart
最新バージョンへのアップデート:
docker compose pull
docker compose up -d
最新のイメージを取得してコンテナを再作成します。設定やデータはボリュームマウントしているため失われません。
コンテナ内に入ってデバッグ:
docker exec -it openclaw sh
コンテナ内で openclaw doctor を実行すれば診断が行えます。
データのバックアップ
設定とデータはホスト側の ./config と ./data ディレクトリにマウントされているため、バックアップは非常に簡単です。
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz config data .env
定期的なバックアップをおすすめします。特にアップデート前には必ず実施してください。
リバースプロキシ設定(オプション)
ドメイン名で OpenClaw にアクセスしたい場合は、Nginx のリバースプロキシを前段に置くことができます。docker-compose.yml に Nginx サービスを追加するか、ホスト側の Nginx 設定に以下を追加してください。
server {
listen 443 ssl;
server_name openclaw.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
WebSocket の Upgrade ヘッダー設定は非常に重要です。OpenClaw のリアルタイム通信はこれに依存しています。
まとめ
Docker デプロイにより、OpenClaw の運用は非常に楽になります。一度設定すれば、日常的にはログの確認と定期的なアップデートだけで済みます。問題が発生した場合は、OpenClaw公式ドキュメントを参照するか、OpenClaw GitHub リポジトリで Issue を作成してください。その他の機能については OpenClaw をご覧ください。