【Docker】AI エージェント「NanoClaw」環境の構築と docker compose build 手順

  • URLをコピーしました!
目次

はじめに

PC のローカル環境で自律的に動作する AI エージェント「NanoClaw」が注目を集めています。しかし、ファイル操作やコマンド実行の権限を AI に直接与えることには、誤操作やセキュリティ上のリスクが伴います。

そこで推奨されるのが、Docker を利用した「サンドボックス(隔離環境)」の構築です。本記事では、Ubuntu 環境に Docker を導入し、docker composeを使って NanoClaw の安全な実行環境を構築・ビルド(build)する具体的な手順を解説します。

この記事でわかること
  • NanoClaw を Docker の隔離環境で動かす目的とセキュリティ上の理由
  • Ubuntu への最新版 Docker および Docker Compose(V2 プラグイン)のインストール手順
  • docker-compose.yml と Dockerfile を利用した独自環境の定義
  • docker compose build コマンドを使ったイメージ作成とコンテナ起動手順

NanoClaw を Docker で動かす理由(サンドボックスによる隔離)

NanoClaw や OpenClaw などの自律型 AI エージェントは、ターミナルでのコマンド実行やファイル操作を人間に代わって自律的に行います。

非常に便利である反面、ホスト PC(自身のローカル環境)に直接インストールして実行した場合、AI が誤って重要なシステムファイルを削除したり、意図しない設定変更を行ったりするリスクが存在します。

このリスクを回避するために、Docker コンテナを利用した「サンドボックス(隔離環境)」での実行が推奨されています。Docker 環境上でエージェントを動かすことで、AI の操作権限はコンテナの内部(および明示的にマウントしたディレクトリ)のみに制限されます。万が一予期せぬコマンドが実行されても、ホスト PC の環境を安全に保つことが可能です。

自律型 AI エージェントの仕組みや、フルアクセス権限による具体的なセキュリティリスクについては、以下の記事でも詳しく解説しています。

環境準備: Docker と Docker Compose(V2)のインストール

Ubuntu 環境に最新の Docker エンジンを導入します。旧記事で紹介されていた apt-key を使用する手順や、ハイフンありの旧版 docker-compose(V1)は現在非推奨となっているため、最新の公式ドキュメントに準拠した手順でインストールを行います。

Docker エンジンのインストール

既存のパッケージを更新し、必要な前提パッケージをインストールした後、公式の GPG キーとリポジトリを追加します。

# パッケージリストの更新と前提ツールのインストール
sudo apt-get update
sudo apt-get install ca-certificates curl

# Docker公式のGPGキーを追加(最新の keyring 方式)
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Dockerリポジトリを apt ソースリストに追加
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# パッケージリストを再更新し、Docker本体とComposeプラグイン(V2)をインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker コマンドの実行権限付与

毎回 sudo を付けずに Docker コマンドを実行できるよう、現在のユーザーを docker グループに追加します。

sudo usermod -aG docker ${USER}
# 設定を反映させるため、一度ログアウトして再ログインするか、以下のコマンドを実行します
su - ${USER}

これで、最新の docker compose(ハイフンなし)コマンドが使用可能になりました。

NanoClaw 環境の定義(docker-compose.yml と Dockerfile)

Docker の準備が整ったら、NanoClaw を動かすための作業ディレクトリと設定ファイルを作成します。今回は、AI に独自のツール(Python や Node.js など)を使わせるカスタム環境を想定し、Dockerfile を併用して環境を定義します。

作業ディレクトリの作成

隔離環境(コンテナ)とホスト PC でファイルを共有するための workspace フォルダを含め、ディレクトリを作成します。

mkdir nanoclaw-demo
cd nanoclaw-demo
mkdir workspace

Dockerfile の作成

コンテナのベースとなる OS や、インストールするパッケージを定義します。

vi Dockerfile
# ベースイメージとして軽量なUbuntu(またはNode.js等)を指定
FROM ubuntu:22.04

# 必要な基本パッケージのインストール
RUN apt-get update && apt-get install -y \
    curl \
    git \
    python3 \
    && rm -rf /var/lib/apt/lists/*

# 作業ディレクトリの指定
WORKDIR /app/workspace

# NanoClawの起動コマンド等を後述で設定可能
# CMD ["bash"]

docker-compose.yml の作成

ビルド設定、環境変数(API キー等)、およびディレクトリのマウント(Volume)設定を記述します。

vi docker-compose.yml
services:
  nanoclaw-agent:
    # 既存のイメージではなく、カレントディレクトリの Dockerfile からビルドする
    build: .
    container_name: nanoclaw-sandbox
    # ホスト側の workspace フォルダを、コンテナ内の /app/workspace にマウント
    volumes:
      - ./workspace:/app/workspace
    # NanoClawが使用する外部LLMのAPIキー等を環境変数として渡す
    environment:
      - OPENCLAW_LLM_PROVIDER=anthropic
      - OPENCLAW_MODEL=claude-3-7-sonnet-latest
      - ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxx
    # コンテナを起動させ続けるためのダミーコマンド(実運用時はNanoClawの起動コマンドを指定)
    command: tail -f /dev/null

この設定により、AI エージェントの操作範囲はコンテナ内の /app/workspace(ホスト側の ./workspace)に限定され、安全なサンドボックス環境が確立されます。

docker compose build によるイメージ作成とコンテナ起動

設定ファイルが完成したら、実際にコンテナイメージをビルド(構築)し、バックグラウンドで起動させます。旧バージョンの docker-compose ではなく、最新の docker compose プラグインコマンドを使用します。

カスタムイメージのビルド

docker-compose.yml が置かれているディレクトリで以下のコマンドを実行します。 これにより、定義した Dockerfile の内容(OS パッケージのインストール等)が読み込まれ、NanoClaw 実行用のカスタムイメージが生成されます。

docker compose build

コンテナの起動とステータス確認

ビルドが完了したら、コンテナをバックグラウンド(デタッチモード)で起動します。

docker compose up -d

起動後、コンテナが正常に動作しているかステータスを確認します。

docker compose ps

STATUSUp と表示されていれば成功です。

コンテナ内部での操作(動作確認)

起動したサンドボックス(コンテナ)の中に入り、AI エージェントとして実行するためのコマンド操作を行う場合は、以下のコマンドを使用します。

docker compose exec nanoclaw-agent bash

これによりコンテナ内のシェルに接続され、マウントした /app/workspace ディレクトリ上で安全に作業を行うことができます。確認が終わったら exit でホスト PC に戻ります。

コンテナの停止と削除

検証作業が終了し、コンテナを終了・破棄する基本コマンドは以下の通りです。

# コンテナの実行を一時停止する
docker compose stop

# コンテナとネットワークを完全に削除する
docker compose down

まとめ

本記事では、AI エージェント「NanoClaw」を題材に、Docker を利用した安全なサンドボックス環境の構築手順を解説しました。

  • NanoClaw のシステム破壊リスクを防ぐため、Docker による隔離環境での実行が必須である。
  • Ubuntu 環境では非推奨のコマンドを避け、最新の Docker エンジンと V2 プラグインを導入する。
  • Dockerfile と docker-compose.yml を組み合わせることで、独自のツールと API キーを含めた環境を定義できる。
  • docker compose build コマンドを使用すれば、定義した環境をカスタムイメージとして安全にビルド・起動できる。

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

インフラ(クラウド/NW/仮想化)から Web 開発まで、技術領域を横断して活動するエンジニア💻 コンシューマー向けエンタメ事業での新規開発・運営経験を活かし、実戦的な技術ノウハウを発信中

[ Certs ] CCIE Lifetime Emeritus / VCAP-DCA ✒️ [ Life ] 技術書・ビジネス書愛好家📖 / 小・中学校で卓球コーチ👟

目次