Milvus Server Docker 설치 및 패키징 의존성
Milvus는 생성형 AI 및 RAG(Retrieval Augmented Generation) 사용 사례에서 상당한 주목을 받고 있는 인기 있는 오픈 소스 벡터 데이터베이스입니다. 조직으로서 Milvus를 기술 스택에 통합하는 것을 고려하고 있을 수 있으며, 주요 종속성과 요구 사항을 이해하는 것이 중요합니다.
Milvus는 서버에 대해 유연한 배포 옵션을 제공합니다:
Local: Milvus를 단일 Docker 컨테이너로 머신에서 실행합니다. 대규모 요구 사항의 경우, Kubernetes 클러스터 전반에 Milvus를 배포합니다.
Cloud (Zilliz): Zilliz는 AWS, GCP 또는 Azure에서 관리형 클라우드 서비스로 Milvus를 제공하며, 추가 고급 기능과 번거로움 없는 경험을 제공합니다.
이 블로그의 나머지 부분은 Milvus를 로컬에 설치하는 방법에 관한 것입니다. 이는 Milvus version 2.4 이상을 대상으로 한다는 점에 유의하세요.
종속성 개요
깨끗한 설치를 가정할 때, Milvus standalone 서버의 주요 종속성은 다음과 같습니다:
FAISS: 밀집 벡터의 효율적인 유사도 검색 및 클러스터링을 위한 라이브러리입니다.
etcd: Milvus 메타데이터를 저장하는 데 사용되는 분산 키-값 저장소입니다.
Pulsar/Kafka: 실시간 데이터 수집, 처리 및 구성 요소 간 통신을 처리하기 위한 분산 pub-sub 메시징 시스템입니다.
Tantivy: 텍스트 기반 검색 기능을 위해 Rust로 작성된 전체 텍스트 검색 엔진 라이브러리입니다.
RocksDB: 영구 스토리지 엔진입니다.
Minio/S3/GCS/Azure Blob Storage: 다양한 객체 스토리지 솔루션과의 호환성입니다.
Kubernetes: 분산 컨테이너화 배포 플랫폼입니다.
StorageClass 및 Persistent Volumes: Kubernetes 리소스는 etcd 및 Pulsar의 스토리지 요구 사항을 관리하는 데 사용됩니다.
Prometheus 및 Grafana: 사용자가 성능을 추적하고 문제를 해결할 수 있게 해주는 Milvus monitoring을 위한 시각화입니다.
Docker 이미지 크기 ~500MB
Milvus standalone 컨테이너의 Docker 이미지 크기는 약 500MB입니다. 최신 릴리스는 Milvus Docker Hub 페이지 https://hub.docker.com/r/milvusdb/milvus/tags에서 확인할 수 있습니다.
업데이트 빈도 ~월 1회(다수의 소규모 릴리스 및 월 1회 고정 릴리스)
Milvus는 비교적 빈번한 릴리스 주기를 가지고 있으며, 대략 한 달에 한 번 주요 릴리스가 있습니다. 소규모 릴리스에는 개선 사항과 버그 수정이 포함됩니다. 일반적으로 매월 하나의 "고정" 릴리스가 있습니다.
프로덕션에는 최신 마이너 릴리스를 사용하는 것을 권장하지 않습니다. Zilliz cloud는 항상 최신 안정 릴리스에서 실행되며, 이는 일반적으로 최신 버전보다 한 버전 뒤입니다. 예를 들어, 현재 최신 버전은 2.4이지만 프로덕션에 권장하는 최신 릴리스는 2.3.x입니다.
SDK
다음 여섯 가지 SDK(software development kits)를 제공합니다: 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 standalone Docker 설치는 간단합니다. 중요한 것은 문서 페이지에서 또는 GitHub에서 직접 최신 docker-compose.yml을 다운로드하는 것입니다. 아래에 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'
port='19530'
)
# 서버 버전을 출력합니다.
print(utility.get_server_version())
# 스키마 없는 Milvus 클라이언트 사용(유연한 json key:value 형식).
mc = MilvusClient(connections=connection)
# 컬렉션이 이미 존재하는지 확인합니다.
collection_name = "movies"
has = utility.has_collection(collection_name)
print(f"Collection '{collection_name}' exists in Milvus?")
print(f"Answer --> {has}!")
# 로컬 Milvus 서버를 중지합니다.
!docker compose down
요약
다음은 standalone Docker에서 Milvus 서버를 배포하기 위한 주요 종속성 및 릴리스 업데이트 빈도입니다. 이러한 세부 정보를 이해하면 Milvus를 조직의 기술 스택에 통합하기 위한 계획과 준비를 더 잘 할 수 있습니다.
계속 읽기

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

How Zilliz Ended Up at the Center of NVIDIA’s Unstructured Data Story at GTC 2026
If unstructured data is the context of AI, then the ceiling of AI applications will be set not just by models, but by how mature the infrastructure for unstructured data becomes.

How to Build RAG with Milvus, QwQ-32B and Ollama
Hands-on tutorial on how to create a streamlined, powerful RAG pipeline that balances efficiency, accuracy, and scalability using the QwQ-32B and Milvus.



