Векторная база данных Chroma: установка и Docker, коротко и с данными

Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 3 вопроса. Полный разбор с примерами: Векторная база данных Chroma: установка и Docker.

Коротко

Векторная база данных Chroma ставится командой pip install chromadb для работы прямо из Python или контейнером chromadb/chroma, который слушает порт 8000 и хранит данные в папке /data. Для первого RAG её удобно брать из-за встроенного режима без сервера, а для доступа по сети ей нужен прокси с паролем. Для прототипа хватит Chroma прямо в Python без сервера.

Конспект по разделам

Три режима работы Chroma и какой выбрать

Chroma хранит эмбеддинги текстов вместе с исходным текстом и метаданными и ищет ближайшие по смыслу. Для RAG на старте это удобно: клиент ставится одной командой и работает без отдельного сервиса. Клиенты есть для Python ( pip install chromadb ) и JavaScript ( npm install chromadb ).

Установка Chroma через pip и запуск сервера

Модель эмбеддингов Chroma может посчитать сама встроенной функцией, но для документов на русском лучше передавать векторы от многоязычной модели, например из Ollama. Главное правило: и документы, и вопросы считаются одной и той же моделью.

Chroma в Docker: том /data и docker compose

Команда из документации, с привязкой порта к локальному адресу: Без тома на /data коллекции исчезнут вместе с контейнером. В compose это сервис с образом chromadb/chroma, томом /srv/chroma-data:/data и портом; пример в документации дополнительно поднимает сборщик трассировок OpenTelemetry и Zipkin, для начала они не нужны. Живость сервера проверяет запрос curl http://localhost:8000/api/v2/heartbeat.

Как закрыть Chroma от чужих запросов

Страница документации о запуске в Docker не описывает встроенную аутентификацию. Поэтому сервер Chroma держат во внутренней сети: порт привязан к 127.0.0.1, приложения в соседних контейнерах ходят по имени сервиса. Доступ снаружи только через прокси Если базой пользуются с другого сервера, поставьте впереди Caddy или Nginx с HTTPS и паролем либо пускайте только адреса своих серверов.

Chroma, Qdrant или pgvector: что выбрать под RAG

Переезд с Chroma на Qdrant или pgvector обычно сводится к повторной загрузке тех же векторов. Подбор сервера под объём коллекций: Объём коллекций, место расчёта эмбеддингов и нагрузка: калькулятор подберёт конфигурацию

Запустите свой сервер за пару минут

Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.

Данные

РежимКак запускаетсяКогда подходит
ВстроенныйБиблиотека в процессе Python, данные в папкеПрототип, скрипт, один пользователь
Клиент-серверchroma run или Docker-образНесколько приложений, сервер команды
Chroma CloudОблако разработчиковНе хотите держать сервер
ChromaQdrantpgvector
Стартpip install, без сервераDocker-контейнерРасширение PostgreSQL
Порт80006333 и 63345432
Ключ API из коробкиВ документации Docker не описанЕсть, включается в конфигурацииПароли PostgreSQL
ЛицензияApache 2.0Apache 2.0PostgreSQL License

Данные на 14 октября 2026.

Вопросы и ответы

Где Chroma в Docker хранит данные?

В папке /data внутри контейнера. Смонтируйте её на диск хоста флагом -v /srv/chroma-data:/data, тогда коллекции переживут пересоздание контейнера и обновление образа.

Нужен ли Chroma отдельный сервер?

Для прототипа нет: в Python она работает внутри скрипта и хранит данные в папке. Сервер нужен, когда к базе обращаются несколько приложений или людей.

Как проверить, что сервер Chroma запущен?

Запросом к /api/v2/heartbeat на порту 8000: работающий сервер отвечает без ошибки. Этот же адрес подходит для мониторинга.