Docker シェルサンドボックスでNanoClawを動かす

投稿日 Feb 16, 2026

WhatsAppのメッセージ 24や7を監視するパーソナルAIアシスタントを使いたいと思ったことはありますか?でもシステム全体へのアクセスを認めるのが心配ですか?Docker Sandboxの新しいサンドボックスタイプ shell は完璧な解決策です。この記事では、Claude搭載の軽量なWhatsAppアシスタントである NanoClawを、安全で隔離されたDockerサンドボックス内で動かす方法をお見せします。

シェル・サンドボックスとは何ですか?

Docker Sandboxは、Claude CodeやGemini CLIなどのAIコーディングエージェントを実行するための事前設定済み環境を提供します。しかし、組み込みでない 別の エージェントやツールを実行したい場合はどうすればいいのでしょうか?
そこでシェル サンドボックス の登場です。これは最小限のサンドボックスで、孤立したmicroVM内のインタラクティブなバッシュシェルにプレイヤーを落とします。プリインストールされたエージェントも意見もありません — ただNode.jsのあるクリーンなUbuntu環境だけです。Python、git、そして一般的な開発ツール。必要なものを何でもインストールすればいいです。

なぜNanoClawをサンドボックスで使うのですか?

NanoClawはすでにエージェントをコンテナ内で運用しているため、設計上セキュリティに配慮しています。しかし、Dockerサンドボックス内で NanoClawプロセス全体 を実行すると、さらに別の層が加わります:

  1. ファイルシステムの分離 – NanoClawはマウントしたワークスペースディレクトリしか見ることができず、ホームディレクトリは見えません
  2. 認証情報管理 – APIキーはDockerのプロキシ経由で注入され、サンドボックス内に保存されることはありません
  3. クリーンな環境 – ホストのNode.jsバージョンやグローバルパッケージとの競合はありません
  4. 使い捨て – いつでも使い捨てて新たにやり直す docker sandbox rm

前提 条件

  • Docker Desktop のインストールと稼働
  • Docker Sandboxes CLI(docker sandbox コマンド利用可能)(v.0.12.02月からナイトビルドで利用可能 13)
  • Env変数内のAnthropic APIキー

セットアップ

サンドボックスを作る

ホストのディレクトリを選んで、サンドボックス内のワークスペースとしてマウントします。サンドボックスが見ることができるファイルシステム内の唯一の部分は以下の通りです:

mkdir -p ~/nanoclaw-workspace
docker sandbox create --name nanoclaw shell ~/nanoclaw-workspace

それに繋がる

docker sandbox run nanoclaw

あなたは今、サンドボックスの中にいます。これは、隔離されたVM上で動作するUbuntuシェルです。ここから先はすべて砂場の中で起こる。

Claude Codeをインストールする

シェルサンドボックスにはNode.js 20 がプリインストールされているので、npmで直接Claude Codeをインストールできます:

npm install -g @anthropic-ai/claude-code

APIキーの設定

これがシェルサンドボックスで必要な追加のステップです。組み込みの claude サンドボックスタイプはこれを自動で行いますが、私たちはプレーンシェルなので、Claude CodeにDockerの認証情報プロキシからAPIキーを取得するよう指示する必要があります:

mkdir -p ~/.claude && cat > ~/.claude/settings.json << 'EOF'
{
  "apiKeyHelper": "echo proxy-managed",
  "defaultMode": "bypassPermissions",
  "bypassPermissionsModeAccepted": true
}
EOF

これが行うこと: apiKeyHelper Claude CodeにAPIキーを取得するために echo proxy-managed を実行するよう指示します。サンドボックスのネットワークプロキシは送信APIコールを傍受し、このセンチネル値を本物のAnthropicキーと交換するため、実際のキーはサンドボックス内に存在しません。

NanoClawのクローンとインストール依存関係

cd ~/workspace
git clone https://github.com/†/nanoclaw.git
cd nanoclaw
npm install

Claudeを起動してNanoClawをセットアップしてください

NanoClawは初期設定にClaude Codeを使用しています。WhatsApp認証、データベース、コンテナランタイムの設定を行います。

claude

Claudeが始まったら、 /setup 走ってプロンプトに従ってください。ClaudeがWhatsAppのQRコードをスキャンし、その他の設定を案内してくれます。

スタート・ナノクロー

セットアップが完了したら、アシスタントを起動します:

npm start

NanoClawは現在、サンドボックス内でWhatsAppメッセージを実行・受信しています。

サンドボックスの管理

# List all sandboxes
docker sandbox ls

# Stop the sandbox (stops NanoClaw too)
docker sandbox stop nanoclaw

# Start it again
docker sandbox start nanoclaw

# Remove it entirely
docker sandbox rm nanoclaw

他に何を走らせられるでしょうか?

シェルサンドボックスはNanoClaw特有のものではありません。Linux上で動作し、AI APIと連携するものなら何でも適しています:

  • Claude Agent SDKや他のAIエージェント(Claudeコード、Codex、Github Copilot、OpenCode、Kiroなど)で構築されたカスタムエージェント。 
  • AI搭載ボットと自動化スクリプト
  • ホスト上で動かしてほしくない実験的なツール

パターンは常に同じです:サンドボックスを作成し、必要なものをインストールし、プロキシ経由で認証情報を設定し、実行します。

docker sandbox create --name my-shell shell ~/my-workspace
docker sandbox run my-shell

関連記事