AI エージェントが単一のプロセスであることはめったにありません。エージェントループそのもの、記憶のためのベクトルストア、キャッシュ、たいていは状態のためのデータベース、そしておそらく小さなダッシュボード。それぞれを手で動かす——起動し、再起動後にまた立ち上げ、どのポートがどれか覚える——のはすぐに面倒になります。Docker Compose はそれ全体を1つのファイルで記述し、1コマンドで走らせます。これはエージェントをすっきりと VPS に載せるためのコピペ・スタックです。
Docker なしのデプロイ版だけが欲しいなら、AI エージェントを24時間365日動かすガイド が代わりに systemd を扱います。このページはコンテナネイティブ版です。
スタック
典型的なセルフホストのエージェントは傍らに4つを欲しがります:エージェントプロセス、Qdrant(ベクトル記憶)、Redis(キャッシュ / キュー)、Postgres(状態)。以下は、それらすべてを動かし、内部サービスを公共インターネットから遠ざけた docker-compose.yml です:
# /opt/agent/docker-compose.yml
services:
agent:
build: . # your agent image (or image: your/agent:latest)
restart: unless-stopped
env_file: [.env] # OPENAI/ANTHROPIC keys etc. — never in this file
environment:
QDRANT_URL: http://qdrant:6333
REDIS_URL: redis://redis:6379
DATABASE_URL: postgres://agent:${DB_PASSWORD}@postgres:5432/agent
depends_on: [qdrant, redis, postgres]
# no ports: — this agent only makes outbound calls. Publish one only if it serves webhooks.
qdrant:
image: qdrant/qdrant:latest
restart: unless-stopped
volumes: ["qdrant:/qdrant/storage"] # internal only — not published
redis:
image: redis:7-alpine
restart: unless-stopped
command: ["redis-server", "--save", "60", "1"]
volumes: ["redis:/data"]
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: agent
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: agent
volumes: ["pg:/var/lib/postgresql/data"]
volumes: { qdrant: {}, redis: {}, pg: {} }
シークレットは .env に置き、compose ファイルには置きません:
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
立ち上げます:
apt update && apt install -y docker.io docker-compose-v2
systemctl enable --now docker
cd /opt/agent && docker compose up -d
docker compose logs -f agent
内部サービス(Qdrant、Redis、Postgres)はいずれも compose ネットワーク上でサービス名によってのみ到達可能で、どれもインターネットに公開されていません。エージェントはそのプライベートネットワーク越しにそれらと話し、それらのポート上のものは世界に面していません。
効いてくる細部
- 各サービスの
restart: unless-stopped——これが再起動やクラッシュを生き延びます。Docker を起動時に有効化すれば、スタック全体が自分で戻ってきます。 - 鍵は
.envに、YAML ではなく。 env 変数として参照し、.envをchmod 600に保ち、git から外します。有効な鍵入りの漏洩した compose ファイルは典型的なミスです。 - 必要のないものは何も公開しない。 モデル API と自身のサービスしか呼ばないエージェントは受信ポートがまったく要りません——だから NAT プランで動きます。Webhook やダッシュボードを提供する場合だけ専用 IP を足します。
- コアでなくメモリでサイジング。 API 依存のエージェントは軽量です。Qdrant のインデックスが大きくなったりローカルモデルを足したりしたときが、上へ移るときです——エージェント向け大容量メモリ VPS を参照。
本当に当社ならではの部分:エージェントが自分のマシンを作れる
EQVPS は MCP サーバー を公開しているので、このスタックを動かすエージェントは自分でもう1台クリーンな VPS をプロビジョニングできます——注文し、root を得て、取り壊す——プリペイドの暗号資産残高から支払って。新鮮なサンドボックスが必要な compose スタックは、人が介在せずに1台を立ち上げられます。
Docker 化したエージェントに EQVPS を選ぶ理由
- クリーンなイメージ、約60秒で root。 Ubuntu/Debian;
docker compose upでスタックが稼働。 - KYC なし、暗号資産で支払い。 登録にメール、支払いに USDC/USDT——マシンをあなたの身元に結びつけるものは何もありません。
- NVMe + 無制限 1 Gbit/s、EU(ドイツ/フィンランド)。イメージのプルやログ送信で驚きの請求が出ることはありません。
AI エージェント向け VPS(概要)→ · Docker 向け VPS → · エージェント記憶のためにベクトル DB をホスト →
コメント
まだコメントはありません。最初になりましょう。