Векторная база данных Chroma: установка и Docker
Векторная база данных Chroma ставится командой pip install chromadb для работы прямо из Python или контейнером chromadb/chroma, который слушает порт 8000 и хранит данные в папке /data. Для первого RAG её удобно брать из-за встроенного режима без сервера, а для доступа по сети ей нужен прокси с паролем.
Ответ за 30 секунд
Для прототипа хватит Chroma прямо в Python без сервера. Для общего доступа запускайте контейнер с томом на /data и не открывайте порт 8000 наружу: встроенный вход в документации по Docker не описан.
VPS с Docker и почасовой оплатой: поднимите Chroma рядом с приложением и проверьте RAG на своих данных.
Chroma, Qdrant или pgvector: что выбрать под RAG8000порт сервера Chroma
/dataпапка данных в контейнере
Apache 2.0лицензия Chroma
01 · 1 мин
Три режима работы Chroma и какой выбрать#
Chroma хранит эмбеддинги текстов вместе с исходным текстом и метаданными и ищет ближайшие по смыслу. Для RAG на старте это удобно: клиент ставится одной командой и работает без отдельного сервиса.
| Режим | Как запускается | Когда подходит |
|---|---|---|
| Встроенный | Библиотека в процессе Python, данные в папке | Прототип, скрипт, один пользователь |
| Клиент-сервер | chroma run или Docker-образ | Несколько приложений, сервер команды |
| Chroma Cloud | Облако разработчиков | Не хотите держать сервер |
Клиенты есть для Python (pip install chromadb) и JavaScript (npm install chromadb). Новые версии пакетов выходят по понедельникам, поэтому версию в рабочем проекте лучше закрепить.
02 · 1 мин
Установка Chroma через pip и запуск сервера#
- Поставьте пакет в виртуальное окружение:
pip install chromadb. - Для встроенного режима создайте клиента с папкой:
chromadb.PersistentClient(path="./chroma"). Данные переживут перезапуск скрипта. - Для режима сервера запустите
chroma run --path /srv/chroma, а в приложении подключайтесь черезchromadb.HttpClient(host="localhost", port=8000).
Модель эмбеддингов Chroma может посчитать сама встроенной функцией, но для документов на русском лучше передавать векторы от многоязычной модели, например из Ollama. Главное правило: и документы, и вопросы считаются одной и той же моделью.
03 · 1 мин
Chroma в Docker: том /data и docker compose#
Команда из документации, с привязкой порта к локальному адресу:
docker run -d --name chroma --restart unless-stopped \
-v /srv/chroma-data:/data \
-p 127.0.0.1:8000:8000 \
chromadb/chroma
Без тома на /data коллекции исчезнут вместе с контейнером. В compose это сервис с образом chromadb/chroma, томом /srv/chroma-data:/data и портом; пример в документации дополнительно поднимает сборщик трассировок OpenTelemetry и Zipkin, для начала они не нужны.
Живость сервера проверяет запрос curl http://localhost:8000/api/v2/heartbeat. Тот же адрес удобно отдать в мониторинг вроде Uptime Kuma.
04 · 1 мин
Как закрыть Chroma от чужих запросов#
Страница документации о запуске в Docker не описывает встроенную аутентификацию. Поэтому сервер Chroma держат во внутренней сети: порт привязан к 127.0.0.1, приложения в соседних контейнерах ходят по имени сервиса.
Доступ снаружи только через прокси
Если базой пользуются с другого сервера, поставьте впереди Caddy или Nginx с HTTPS и паролем либо пускайте только адреса своих серверов. Открытый порт 8000 позволит любому читать и стирать коллекции.
Инструмент · 1 мин
Chroma, Qdrant или pgvector: что выбрать под RAG#
| Chroma | Qdrant | pgvector | |
|---|---|---|---|
| Старт | pip install, без сервера | Docker-контейнер | Расширение PostgreSQL |
| Порт | 8000 | 6333 и 6334 | 5432 |
| Ключ API из коробки | В документации Docker не описан | Есть, включается в конфигурации | Пароли PostgreSQL |
| Лицензия | Apache 2.0 | Apache 2.0 | PostgreSQL License |
Переезд с Chroma на Qdrant или pgvector обычно сводится к повторной загрузке тех же векторов. Подбор сервера под объём коллекций:
Какой сервер нужен Chroma
Объём коллекций, место расчёта эмбеддингов и нагрузка: калькулятор подберёт конфигурацию
06 · 1 мин
Вопросы о векторной базе Chroma#
Где Chroma в Docker хранит данные?
В папке /data внутри контейнера. Смонтируйте её на диск хоста флагом -v /srv/chroma-data:/data, тогда коллекции переживут пересоздание контейнера и обновление образа.
Нужен ли Chroma отдельный сервер?
Для прототипа нет: в Python она работает внутри скрипта и хранит данные в папке. Сервер нужен, когда к базе обращаются несколько приложений или людей.
Как проверить, что сервер Chroma запущен?
Запросом к /api/v2/heartbeat на порту 8000: работающий сервер отвечает без ошибки. Этот же адрес подходит для мониторинга.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; Документация Chroma: запуск в Docker, docs.trychroma.com/guides/deploy/docker, проверено 15 октября 2026; Chroma на GitHub: установка клиентов, режим сервера, лицензия Apache 2.0, github.com/chroma-core/chroma, проверено 15 октября 2026.
Запустите свой сервер за пару минут
Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.
- NVMe-диски и гарантированная доля процессора
- Root-доступ и любой софт, от Docker до игровых серверов
- Маркетплейс: 91 приложение в один клик
- Бесплатный перенос проекта силами специалистов