docker.recipes

Qdrant

beginner

Vector database for AI applications.

Overview

Qdrant is a high-performance vector similarity search engine built specifically for AI and machine learning applications. Developed in Rust for optimal performance, Qdrant serves as a specialized database for storing and searching high-dimensional vectors, making it essential for modern AI workflows like semantic search, recommendation systems, and retrieval-augmented generation (RAG). Unlike traditional databases that work with structured data, Qdrant excels at finding similar vectors using advanced algorithms like HNSW (Hierarchical Navigable Small World) indexing. This Docker deployment provides both REST API access on port 6333 and gRPC interface on port 6334, enabling flexible integration with various programming languages and frameworks. Qdrant combines vector search capabilities with traditional filtering on payload data, allowing complex queries that blend semantic similarity with structured criteria. The built-in web dashboard provides real-time insights into collections, search performance, and cluster health. This setup is ideal for AI engineers building semantic search applications, data scientists experimenting with embeddings, and companies implementing recommendation engines. Qdrant's self-hosted nature eliminates vendor lock-in concerns while providing enterprise-grade performance and scalability. The containerized deployment simplifies development workflows and enables consistent behavior across different environments without complex configuration management.

Key Features

  • HNSW indexing algorithm for fast approximate nearest neighbor search with tunable precision
  • Payload filtering system combining vector similarity with structured data queries
  • Scalar and product quantization for reduced memory usage and faster search
  • Built-in web dashboard for collection management and query performance monitoring
  • Dual API support with REST endpoints and high-performance gRPC interface
  • Sparse vector support for hybrid search combining dense and sparse embeddings
  • Real-time data updates without requiring full index rebuilds
  • Recommendation API for finding similar items based on positive and negative examples

Common Use Cases

  • 1Semantic search engines for documents, articles, and knowledge bases using text embeddings
  • 2E-commerce recommendation systems finding similar products based on user behavior patterns
  • 3Retrieval-augmented generation (RAG) applications for chatbots and question-answering systems
  • 4Image similarity search for photo management, visual product discovery, and content moderation
  • 5Anomaly detection systems identifying unusual patterns in high-dimensional sensor or transaction data
  • 6Content personalization platforms matching users with relevant articles, videos, or music
  • 7Drug discovery and bioinformatics applications searching molecular fingerprint databases

Prerequisites

  • Minimum 2GB RAM recommended for production workloads with substantial vector collections
  • Docker Engine 20.10+ and Docker Compose v2 for optimal container performance
  • Available ports 6333 (REST API) and 6334 (gRPC) not conflicting with existing services
  • Understanding of vector embeddings and similarity search concepts for effective usage
  • Python development environment with qdrant-client library for application integration
  • Sufficient disk space for vector storage (varies by collection size and dimensionality)

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 qdrant:
3 image: qdrant/qdrant:latest
4 container_name: qdrant
5 restart: unless-stopped
6 volumes:
7 - qdrant_data:/qdrant/storage
8 ports:
9 - "6333:6333"
10 - "6334:6334"
11
12volumes:
13 qdrant_data:

.env Template

.env
1# No configuration needed

Usage Notes

  1. 1Docs: https://qdrant.tech/documentation/
  2. 2REST API at http://localhost:6333, gRPC at localhost:6334
  3. 3Dashboard at http://localhost:6333/dashboard for exploration
  4. 4Python client: pip install qdrant-client
  5. 5Create collection: client.create_collection(name, vectors_config)
  6. 6Supports filtering, payload indexing, and hybrid search

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 qdrant:
5 image: qdrant/qdrant:latest
6 container_name: qdrant
7 restart: unless-stopped
8 volumes:
9 - qdrant_data:/qdrant/storage
10 ports:
11 - "6333:6333"
12 - "6334:6334"
13
14volumes:
15 qdrant_data:
16EOF
17
18# 2. Create the .env file
19cat > .env << 'EOF'
20# No configuration needed
21EOF
22
23# 3. Start the services
24docker compose up -d
25
26# 4. View logs
27docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/qdrant/run | bash

Troubleshooting

  • Connection refused on port 6333: Verify container is running with 'docker ps' and check firewall settings
  • Out of memory errors during indexing: Increase Docker memory limits or reduce batch sizes in client code
  • Slow search performance: Check vector dimensions match collection config and consider enabling quantization
  • Collection creation fails with dimension mismatch: Ensure all vectors have consistent dimensionality matching collection config
  • Dashboard not loading at localhost:6333: Clear browser cache and verify container logs for startup errors
  • gRPC connection timeout on port 6334: Install grpcio-tools and verify client gRPC configuration matches server settings

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Components

qdrant

Tags

#qdrant#vector-db#embeddings#search

Category

AI & Machine Learning
Ad Space