Instalação do Servidor Milvus com Docker e Dependências de Empacotamento

Apr 17, 20243 min read

Milvus é um banco de dados vetorial open-source popular, com tração significativa em casos de uso de IA Generativa e RAG (Geração Aumentada por Recuperação). Como organização, você pode estar considerando integrar o Milvus ao seu stack de tecnologia, e é importante entender as principais dependências e requisitos.

Milvus oferece opções flexíveis de implantação para seu servidor:

  • Local: Execute o Milvus como um único contêiner Docker na sua máquina. Para necessidades em larga escala, implante o Milvus em um cluster Kubernetes.

  • Cloud (Zilliz): A Zilliz oferece o Milvus como um serviço de nuvem gerenciado na AWS, GCP ou Azure, fornecendo recursos avançados adicionais e uma experiência sem complicações.

O restante deste blog será sobre a instalação do Milvus localmente. Observe que isto é para o Milvus versão 2.4 e superiores.

Visão geral das dependências

Assumindo uma instalação limpa, as principais dependências para o servidor standalone do Milvus incluem:

  • FAISS: Uma biblioteca para busca eficiente de similaridade e clusterização de vetores densos.

  • etcd: Um armazenamento distribuído de chave-valor usado para armazenar metadados do Milvus.

  • Pulsar/Kafka: Um sistema distribuído de mensagens pub-sub para lidar com ingestão de dados em tempo real, processamento e comunicação entre componentes.

  • Tantivy: Uma biblioteca de mecanismo de busca de texto completo escrita em Rust para capacidades de busca baseada em texto.

  • RocksDB: Um mecanismo de armazenamento persistente.

  • Minio/S3/GCS/Azure Blob Storage: Compatibilidade com várias soluções de armazenamento de objetos.

  • Kubernetes: Uma plataforma distribuída de implantação conteinerizada.

  • StorageClass e Persistent Volumes: Recursos do Kubernetes são usados para gerenciar os requisitos de armazenamento do etcd e do Pulsar.

  • Prometheus e Grafana: Visualização para monitoramento do Milvus, que permite aos usuários acompanhar o desempenho e solucionar problemas.

Tamanho da imagem Docker ~500MB

O tamanho da imagem Docker para o contêiner standalone do Milvus é de cerca de 500MB. Você pode encontrar os lançamentos mais recentes na página do Milvus Docker Hub em https://hub.docker.com/r/milvusdb/milvus/tags.

Frequência de atualizações ~1x por mês (muitos lançamentos pequenos e 1 lançamento fixado por mês)

O Milvus tem um ciclo de lançamentos bastante frequente, com aproximadamente um lançamento principal por mês. Os lançamentos menores incluem melhorias e correções de bugs. Normalmente há um lançamento "fixado" por mês.

Não recomendamos usar a versão secundária mais recente em produção. O Zilliz cloud está sempre na versão estável mais recente, que normalmente está uma versão atrás da mais recente. Por exemplo, neste momento a versão mais recente é 2.4, mas a versão mais recente que recomendamos para produção é a 2.3.x.

SDKs

Oferecemos seis SDKs (kits de desenvolvimento de software) em: Python, Node, Go, C#, Java, Ruby

Para instalar o SDK Python, basta executar pip install pymilvus.

É importante garantir que as versões do SDK escolhido e do servidor Milvus correspondam em termos de números de versão maior e menor. Por exemplo, a versão 2.4.0 do Pymilvus é compatível com a versão 2.4.0-rc.1-dev de um servidor Milvus local. Da mesma forma, a versão 2.3.6 do Pymilvus é compatível com a versão 2.3.x do Zilliz.

Instalação

Instalar o Docker standalone do Milvus é simples. O principal é baixar o docker-compose.yml mais recente, seja pela página da documentação ou diretamente do GitHub. Mostro um comando wget abaixo. Você pode alterar o comando wget para qualquer versão que estiver usando. Você também precisará ter o Docker instalado. Abaixo está um exemplo de código Python para instalar e conectar.

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

###########################################################################################
# Download the latest .yaml file: https://milvus.io/docs/install_standalone-docker.md
# Or download manually from 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
############################################################################################

# Start Docker
!docker compose up -d

# Verify which local port the Milvus server is listening on
!docker ps -a #19530/tcp

# Connect to the local server.
connection = connections.connect(
 alias="default",
 host='localhost', # or '0.0.0.0' or 'localhost'
 port='19530'
)

# Print server version.
print(utility.get_server_version())

# Use no-schema Milvus client (flexible json key:value format).
mc = MilvusClient(connections=connection)

# Check if a collection already exists.
collection_name = "movies"
has = utility.has_collection(collection_name)
print(f"Collection '{collection_name}' exists in Milvus?")
print(f"Answer --> {has}!")

# Stop the local Milvus server.
!docker compose down

Resumo

Estas são as principais dependências e a frequência de atualização das versões para implantar o servidor Milvus no Docker standalone. Entender esses detalhes pode ajudar você a planejar e se preparar melhor para integrar o Milvus à pilha de tecnologia da sua organização.

Atualizado em Jul 09, 2026