Skip to main content
Qdrant provides official Docker images for easy deployment. The container exposes ports 6333 (HTTP) and 6334 (gRPC) and can be configured using environment variables or configuration files.

Quick Start

Run Qdrant with default settings:
docker run -p 6333:6333 -p 6334:6334 \
    qdrant/qdrant:latest
The service will be available at http://localhost:6333.

Volume Mounts

For persistent storage, mount volumes for data and snapshots:
docker run -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    -v $(pwd)/qdrant_snapshots:/qdrant/snapshots:z \
    qdrant/qdrant:latest
The :z option is required on systems with SELinux to properly set file permissions.

Important Directories

DirectoryPurposeDefault Path
StorageVector data and indexes/qdrant/storage
SnapshotsCollection backups/qdrant/snapshots
ConfigConfiguration files/qdrant/config
StaticWeb UI files/qdrant/static

Environment Variables

Qdrant supports configuration via environment variables using the QDRANT__ prefix with double underscores separating nested keys:
docker run -p 6333:6333 -p 6334:6334 \
    -e QDRANT__SERVICE__HTTP_PORT=6333 \
    -e QDRANT__SERVICE__GRPC_PORT=6334 \
    -e QDRANT__SERVICE__API_KEY=your_secret_api_key \
    -e QDRANT__LOG_LEVEL=INFO \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant:latest

Common Environment Variables

QDRANT__SERVICE__HOST=0.0.0.0
QDRANT__SERVICE__HTTP_PORT=6333
QDRANT__SERVICE__GRPC_PORT=6334
QDRANT__SERVICE__API_KEY=your_secret_api_key
QDRANT__SERVICE__READ_ONLY_API_KEY=your_read_only_key
QDRANT__SERVICE__ENABLE_TLS=false

Custom Configuration File

Mount a custom configuration file to override defaults:
docker run -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/config/config.yaml:/qdrant/config/config.yaml:z \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant:latest

Docker Compose

Create a docker-compose.yml file for easier management:
version: '3.7'

services:
  qdrant:
    image: qdrant/qdrant:latest
    container_name: qdrant
    ports:
      - "6333:6333"  # HTTP API
      - "6334:6334"  # gRPC API
    volumes:
      - ./qdrant_storage:/qdrant/storage:z
      - ./qdrant_snapshots:/qdrant/snapshots:z
      - ./config/config.yaml:/qdrant/config/config.yaml:z
    environment:
      - QDRANT__SERVICE__GRPC_PORT=6334
      - QDRANT__LOG_LEVEL=INFO
    restart: unless-stopped
    healthcheck:
      test: [
        "CMD-SHELL",
        "wget --no-verbose --tries=1 --spider http://localhost:6333/healthz || exit 1"
      ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
Start the service:
docker-compose up -d

Recovery Mode

Qdrant includes automatic recovery handling for OOM (Out of Memory) situations. Enable it with:
docker run -p 6333:6333 -p 6334:6334 \
    -e QDRANT_ALLOW_RECOVERY_MODE=true \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant:latest
If Qdrant is killed during initialization (typically due to OOM), it will restart in recovery mode where only collection deletion operations are allowed.

GPU Support

Qdrant offers Docker images with GPU support for NVIDIA and AMD:
docker run --gpus all -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant:latest-gpu-nvidia
The NVIDIA GPU image includes:
  • Vulkan support
  • NVIDIA driver capabilities (compute, graphics, utility)
  • Optimized GPU acceleration for vector operations

Health Checks

Qdrant provides Kubernetes-compatible health check endpoints:
  • /healthz - Liveness check
  • /livez - Liveness check (alias)
  • /readyz - Readiness check (returns “all shards are ready”)
Example health check command:
curl http://localhost:6333/healthz
# Response: healthz check passed

Build Arguments

When building custom images, Qdrant’s Dockerfile supports several build arguments:
ArgumentDefaultDescription
PROFILEreleaseCargo build profile (release/dev/ci)
FEATURES-Additional Cargo features to enable
GPU-Enable GPU support (nvidia/amd)
LINKERmoldLinker to use (mold/lld)
TARGET_CPU-Target CPU architecture
USER_ID0User ID for running Qdrant

Next Steps

Configuration

Learn about all configuration options

Security

Set up API keys and TLS

Kubernetes

Deploy on Kubernetes

Distributed Mode

Set up a cluster