46.4kデモを予約するログイン無料で始める

Milvus Server Dockerのインストールとパッケージングの依存関係

Apr 17, 20241 min read

Milvusは、Generative AIやRAG(Retrieval Augmented Generation)のユースケースで大きな支持を得ている、人気のあるオープンソースのベクトルデータベースです。組織として、技術スタックにMilvusを統合することを検討しているかもしれませんが、重要な依存関係と要件を理解することが重要です。

Milvusはサーバーの柔軟な導入オプションを提供しています:

  • ローカル:** Milvusをあなたのマシン上で単一のDockerコンテナとして実行します。大規模なニーズには、KubernetesクラスタにMilvusをデプロイする。

  • クラウド (Zilliz): ZillizはAWS、GCP、またはAzure上のマネージドクラウドサービスとしてMilvusを提供し、さらなる高度な機能と手間のかからない体験を提供します。

このブログでは、Milvusのローカルインストールについて説明します。Milvus version 2.4](https://zilliz.com/blog/what-is-new-in-milvus-2-4-0)以上が対象です。

依存関係の概要

クリーンインストールを前提とした場合、Milvusスタンドアロンサーバの主な依存関係は以下の通りです:

  • FAISS](https://github.com/facebookresearch/faiss):密なベクトルの効率的な類似性検索とクラスタリングのためのライブラリ。

  • etcd](https://github.com/etcd-io/etcd):Milvusのメタデータを格納するための分散Key-Valueストア。

  • Pulsar](https://github.com/apache/pulsar)/Kafka:リアルタイムのデータ取り込み、処理、およびコンポーネント間の通信を処理するための分散pub-subメッセージングシステム。

  • Tantivy](https://github.com/quickwit-oss/tantivy):Rustで書かれた、テキストベースの検索機能を持つ全文検索エンジンライブラリ。

  • RocksDB](https://github.com/facebook/rocksdb):永続ストレージエンジン。

  • Minio](https://min.io/)/S3/GCS/Azure Blob Storage:様々なオブジェクト・ストレージ・ソリューションとの互換性。

  • Kubernetes](https://kubernetes.io/):分散コンテナ型デプロイプラットフォーム。

  • StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/)とPersistent Volumes:Kubernetesリソースは、etcdとPulsarのストレージ要件を管理するために使用される。

  • Prometheus](https://prometheus.io/)とGrafana:Milvusモニタリングのための可視化で、ユーザーがパフォーマンスを追跡し、問題をトラブルシュートできるようにする。

Dockerイメージサイズ ~500MB

MilvusスタンドアロンコンテナのDockerイメージサイズは約500MBです。 最新のリリースはMilvus Docker Hubのページ https://hub.docker.com/r/milvusdb/milvus/tags で確認できます。

更新頻度 ~1ヶ月に1回 (多数の小規模リリースと1ヶ月に1回の固定リリース)

Milvusのリリースサイクルはかなり頻繁で、1ヶ月に1つのメジャーリリースがあります。小さなリリースには改善やバグフィックスが含まれます。 通常、1ヶ月に1回「固定」リリースがあります。

最新のマイナーリリースを本番環境で使用することはお勧めしません。 Zillizクラウドは常に最新の安定版リリースを使用しています。 例えば、今現在の最新バージョンは2.4ですが、本番用として推奨する最新リリースは2.3.xです。

SDK

私たちは6つのSDK(ソフトウェア開発キット)を提供しています:Python、Node、Go、C#、Java、Ruby

Python SDKをインストールするには、pip install pymilvusを実行するだけでよい。

選択したSDKとMilvusサーバのバージョンがメジャーバージョンとマイナーバージョンで一致していることを確認することが重要です。 例えば、Pymilvusバージョン2.4.0はローカルのMilvusサーバーバージョン2.4.0-rc.1-devと互換性があります。同様に、Pymilvusバージョン2.3.6はZillizバージョン2.3.xと互換性があります。

インストール

MilvusスタンドアロンDockerのインストールは簡単である。 最新の docker-compose.yml を ドキュメントページ からダウンロードするか、GitHubから直接ダウンロードする。 以下に wget コマンドを示す。 wget`コマンドはあなたが使っているバージョンに合わせて変更してください。 また、Dockerがインストールされている必要がある。 以下はインストールと接続のためのサンプルPythonコードである。

import pymilvus
from pymilvus import (connections, MilvusClient, utility)
print(f "Pymilvus: {pymilvus.__version__}")

###########################################################################################
# 最新の .yaml ファイルをダウンロードする: https://milvus.io/docs/install_standalone-docker.md
# または milvus github から手動でダウンロードしてください:
# !wget https://github.com/milvus-io/milvus/releases/download/v2.4.0-rc.1/milvus-standalone-docker-compose.yml -O docker-compose.yml
############################################################################################

# Docker の起動
docker compose up -d

# Milvusサーバーがどのローカルポートをリッスンしているか確認する
docker ps -a #19530/tcp

# ローカルサーバに接続する。
connection = connections.connect(
 alias="default"、
 host='localhost', # または'0.0.0.0'または'localhost'
 ポート='19530'
)

# サーバーのバージョンを表示します。
print(utility.get_server_version())

# スキーマ無しMilvusクライアント(柔軟なjsonキー:値フォーマット)を使用する。
mc = MilvusClient(connections=connection)

# コレクションが既に存在するかどうかをチェックします.
コレクション名 = "movies"
has = utility.has_collection(collection_name)
print(f "Collection '{collection_name}'はMilvusに存在しますか?")
print(f "Answer --> {has}!")

# ローカルのMilvusサーバを停止します。
docker compose down

まとめ

以上、スタンドアロンDocker上でMilvusサーバをデプロイするための主要な依存関係とリリース更新頻度について説明しました。これらの詳細を理解することで、組織の技術スタックにMilvusを統合するための計画や準備をより適切に行うことができます。

Updated on Jul 09, 2026