
Разработчик XDA-Developers потратил выходные на подключение своего сервера Docker к стеку локальных LLM и получил рабочую станцию, которая теперь управляет сама собой. Главный урок здесь — Docker это правильная единица работы для локального AI. Загрузите образ сервера моделей, загрузите UI, свяжите их с помощью compose-файла, и вся система становится переносимой между машинами и перезагрузками. Больше не нужно копаться в архаизме Python virtualenv после следующего обновления CUDA.
Мы протестировали лучшие приложения для самостоятельного размещения LLM, которые соответствуют этому шаблону. Каждое приложение из нашего списка поставляется с официальным образом, сохраняет состояние через именованный том и легко встраивается в compose-файл рядом с Postgres, Redis и обратным прокси без сюрпризов. Мы оценили самое важное: насколько быстро свежий docker compose up достигает рабочего чата, насколько чисто работает passthrough GPU, хорошо ли образ работает с бесправным Docker и Podman, и сколько памяти утекает контейнер при сбое модели.
На что обратить внимание при выборе самостоятельного LLM-стека
Несколько качеств отличают контейнеры, которые получают постоянное место в вашем compose-файле, от тех, которые удаляются через неделю:
- OpenAI-API совместимость. Фактический стандартный формат. Если контейнер его поддерживает, каждый существующий клиент (расширение редактора, framework для агентов, notebook) работает без изменения кода.
- Официальный образ Docker. Образы, созданные разработчиками, пересобираются при раскрытии CVE и помечаются против upstream-версий. Коммьюнити форки отстают и дрейфуют.
- Passthrough GPU. NVIDIA Container Toolkit на Linux, ROCm где поддерживается, Apple Silicon через вывод на хост. Лучшие образы документируют точный вызов
--gpus allи поставляются с разумными значениями по умолчанию. - Соглашения о постоянных томах. Модели большие. Предсказуемая точка монтирования (
/root/.ollama,/app/backend/data) сокращает вашdocker-compose.ymlи упрощает резервные копии. - OpenTelemetry и структурированное логирование. Всё, что работает в production, нуждается в трассировке и JSON-логах из коробки, а не только в вывода на консоль.
- Мультипользовательская аутентификация. Домашняя лаборатория перерастает однопользовательский режим в момент, когда второй человек захочет войти. SSO, OIDC или хотя бы реальное хеширование пароля имеют значение.
Быстрое сравнение
| Приложение | Слой | Бесплатный тариф | Платная версия | Docker-образ |
|---|---|---|---|---|
| Ollama | Сервер моделей | Да (open source) | Нет | ollama/ollama |
| Open WebUI | Chat UI | Да (open source) | Нет | ghcr.io/open-webui/open-webui |
| LocalAI | Сервер моделей (мультимодальность) | Да (open source) | Нет | localai/localai |
| LiteLLM | Шлюз / прокси | Да (open source) | Enterprise | ghcr.io/berriai/litellm |
| vLLM | Production inference | Да (open source) | Нет | vllm/vllm-openai |
| Text Generation WebUI | Tinkerer UI | Да (open source) | Нет | atinoda/text-generation-webui |
| AnythingLLM | Full-stack рабочее пространство | Да (open source) | Hosted план | mintplexlabs/anythingllm |
7 лучших приложений для самостоятельного размещения LLM с Docker в 2026
1. Ollama — лучший сервер моделей для домашней лаборатории
Ollama это то, что ближе всего к “Docker для LLM”. Официальный образ маленький, демон предоставляет OpenAI-совместимый API на localhost:11434, и одного docker exec ollama ollama pull llama3.2 достаточно для добавления модели. Библиотека охватывает 4500+ помеченные сборки во всех популярных семействах с разумными кванты по умолчанию, и история работы с GPU хорошо задокументирована как для хостов NVIDIA, так и AMD.
Где это не справляется: Ollama это рантайм, не чат-приложение. Образ не поставляется с UI, поэтому вы пару его с Open WebUI или другим фронтенд. Формат Modelfile мощный, но вводит шаг сборки, когда вы хотите пользовательский системный промпт.
Цены:
- Бесплатно: open-source, без лицензионной платы
- Платно: нет
Платформы: Linux-контейнер; работает на хостах Windows, macOS и Linux через Docker.
Скачать: ollama.com
Выводы: Выберите Ollama как слой сервера моделей для любого самостоятельного стека. Ничто другое не так легко встраивается в compose-файл.
2. Open WebUI — лучший чат UI для размещения в front Ollama
Open WebUI это фронтенд, который стандартизирован в коммьюнити Ollama. Контейнер поставляется с отточенным интерфейсом в стиле ChatGPT с мультипользовательскими аккаунтами, переключением модели для каждого разговора, RAG над загруженными документами, поддержкой MCP-инструментов и системой расширений, которая добавляет генерацию изображений, веб-поиск и интерпретацию кода. Официальный образ работает из коробки за обратным прокси с HTTPS и OIDC.
Где это не справляется: Он предполагает отдельный backend, поэтому он никогда не работает один. Поверхность настроек широкая, что может ошеломить новичков администраторов, которые просто хотят чат-бокс.
Цены:
- Бесплатно: open-source, без лицензионной платы
- Платно: нет
Платформы: Linux-контейнер; работает на хостах Windows, macOS и Linux через Docker.
Скачать: openwebui.com
Выводы: Выберите Open WebUI как слой чат-UX для домашнего или небольшого командного предприятия. Это самый чистый веб-интерфейс в категории.
3. LocalAI — лучший мультимодальный drop-in для OpenAI
LocalAI это drop-in замена для OpenAI API, которая обрабатывает текст, изображение, аудио и embeddings через одну конечную точку. Один контейнер может обслуживать Llama chat completion, Whisper транскрипцию, Stable Diffusion изображение и вызов sentence-embedding без жонглирования отдельными сервисами. Пакеты моделей устанавливаются с одной командой, и проект поставляется с GPU-образами как для CUDA, так и для ROCm.
Где это не справляется: Ширина обходится пропускной способностью. Рабочая нагрузка, которая молотит одну модальность, часто работает быстрее на выделенном сервере (vLLM для текста, отдельный контейнер diffusion для изображения). Конфигурация тяжела на YAML, что запутывает новичков.
Цены:
- Бесплатно: open-source, без лицензионной платы
- Платно: нет
Платформы: Linux-контейнер; работает на хостах Windows, macOS и Linux через Docker.
Скачать: localai.io
Выводы: Выберите LocalAI, когда один контейнер должен обслуживать несколько модальностей за одним OpenAI-совместимым URL.
4. LiteLLM — лучший шлюз для смешанного стека
LiteLLM это легковесный прокси, который сопоставляет 100+ поставщиков (OpenAI, Anthropic, Vertex, Bedrock, Ollama, vLLM, LocalAI) с одним OpenAI-совместимым API. Установите его перед вашими локальными backends и удаленными ключами API, укажите каждого клиента на прокси, и вы получите унифицированное логирование, бюджеты, ключи для каждого пользователя, ограничения частоты и правила маршрутизации в одном месте. Контейнер маленький и UI администратора компетентная.
Где это не справляется: Бесплатный образ имеет всё, что нужно большинству домашних лабораторий, но SSO, логи аудита и некоторая продвинутая маршрутизация находятся за Enterprise тариф. Конфигурация через config.yaml растет быстро, как только вы добавляете более пары моделей.
Цены:
- Бесплатно: open-source self-host
- Платно: Enterprise план с SSO, логированием аудита и поддержкой
Платформы: Linux-контейнер; работает на хостах Windows, macOS и Linux через Docker.
Скачать: litellm.ai
Выводы: Выберите LiteLLM в момент, когда ваш стек имеет более двух backends. Шаблон шлюза это то, что поддерживает остальную систему в здравом уме.
5. vLLM — лучший inference engine для production нагрузки
vLLM это высокопроизводительный inference-сервер, к которому обращаются большинство команд, когда трафик становится реальным. PagedAttention и continuous batching толкают tokens-per-second далеко за пределы наивных серверов на том же железе, а OpenAI-совместимый API означает, что существующие клиенты работают без изменений. Официальный образ vllm/vllm-openai это тот, который нужно загрузить, и проект документирует точные комбинации драйвера NVIDIA и CUDA, которые работают.
Где это не справляется: Образ большой. Сервер ожидает GPU NVIDIA с разумной VRAM, поэтому не подходит для ноутбуков или хостов CPU-only. Конфигурация наклонена к “production engineer” а не к “weekend tinkerer”.
Цены:
- Бесплатно: open-source, без лицензионной платы
- Платно: нет
Платформы: Linux-контейнер; работает на хостах Windows, macOS и Linux через Docker с NVIDIA Container Toolkit.
Скачать: vllm.ai
Выводы: Выберите vLLM как сервер моделей, когда конкурентность и пропускная способность важнее пятиминутного времени установки.
6. Text Generation WebUI — лучшая игровая площадка для фанатов
Text Generation WebUI (проект, который большинство людей ещё называют oobabooga) это вариант “кухонной раковины”. Контейнер объединяет несколько backends (Transformers, llama.cpp, ExLlamaV2), каждый семплер под солнцем, карточки персонажей, LoRA training hooks и систему расширений, которая добавляет RAG и voice. Исследователи, которые заботятся о настройке семплера, contrastive decoding или неясных форматах кванты, приходят сюда.
Где это не справляется: Официальный образ больше остальных, первая загрузка зависимостей занимает дольше, и поверхность UI плотная. Всё это не имеет значения, если вы пришли для кнопок, но это имеет значение, если вы просто хотите чат-бокс.
Цены:
- Бесплатно: open-source, без лицензионной платы
- Платно: нет
Платформы: Linux-контейнер; работает на хостах Windows, macOS и Linux через Docker.
Скачать: github.com/oobabooga/text-generation-webui
Выводы: Выберите Text Generation WebUI, когда вы хотите каждую кнопку открытой и вечер поиграть с ними.
7. AnythingLLM — лучший инструмент одноконтейнерного рабочего пространства
AnythingLLM это редкий полный-стек выбор: один образ, один том, и результат это многопользовательское рабочее пространство с RAG, агентами, правами доступа в области рабочего пространства и picker моделей bring-your-own-LLM, который нацелен на Ollama, LocalAI, vLLM, OpenAI и Anthropic. Контейнер обрабатывает vector database, pipeline инжестии документов, чат UI и agent runtime в одном процессе. Для команды, которая хочет “внутренний ChatGPT с документами” без сборки четырех сервисов, это самый короткий путь.
Где это не справляется: Подход all-in-one обменивает гибкость на простоту. Тяжелые RAG рабочие нагрузки выигрывают от выделенной vector DB, и очень большое количество пользователей перерастет связанный стек. Hosted план существует для команд, которые предпочитают не управлять контейнером самостоятельно.
Цены:
- Бесплатно: open-source self-host
- Платно: hosted план с управляемыми обновлениями и хранилищем
Платформы: Linux-контейнер; работает на хостах Windows, macOS и Linux через Docker.
Скачать: anythingllm.com
Выводы: Выберите AnythingLLM, когда одна команда нужна в приватный GPT-с-документами и “один контейнер” это operational budget.
Как выбрать правильный
Если вы управляете solo домашней лабораторией и хотите самый простой стек, запустите Ollama плюс Open WebUI за обратным прокси. Два контейнера, одна сеть, полный чат с документами.
Если ваша команда имеет более двух backends или бюджет, который вы действительно хотите применить, поместите LiteLLM перед всем и укажите клиентов на прокси.
Если рабочая нагрузка production-grade (реальная конкурентность, реальные целевые задержки), обслуживайте текст с vLLM позади LiteLLM, и позволяйте Ollama или LocalAI обрабатывать машины разработчиков.
Если стек нуждается в более чем тексте (транскрипция, генерация изображений, embeddings) на одной конечной точке, LocalAI сохраняет поверхность площади маленькой.
Если целью является “команда-внутренний ChatGPT с нашими документами” и operational budget это один контейнер, AnythingLLM это самая короткая линия между A и B.
Если вы пришли для кнопок и вечер экспериментов с семплером, Text Generation WebUI построена для вас.
FAQ
Нужен ли мне GPU для самостоятельного размещения LLM с Docker?
Для удобного вывода на 7B и 14B модели, да. CPU-only контейнеры работают для меньших кванты и casual use. Хосты NVIDIA это самый гладкий путь; поддержка AMD ROCm реальна, но уже; Apple Silicon обычно запускает модель на хосте (через Ollama или LM Studio) а не внутри контейнера.
Какой минимальный compose файл для рабочего самостоятельного LLM?
Два сервиса: Ollama контейнер с именованным томом, смонтированным на /root/.ollama и портом, опубликованным на 11434, и Open WebUI контейнер с переменной окружения OLLAMA_BASE_URL, установленной на сервис Ollama. Всё это вписывается в около 25 строк YAML.
Какой контейнер я должен поместить перед всеми остальными?
Шлюз как LiteLLM, позади обратного прокси (Caddy, Traefik или nginx), который обрабатывает HTTPS. Клиенты обращаются к прокси с одним базовым URL и одним ключом. LiteLLM маршрутизирует к Ollama, vLLM или любому удаленному поставщику на основе имени модели.
Могу ли я поделиться одним самостоятельно размещённым LLM с несколькими людьми?
Да. Open WebUI и AnythingLLM оба поддерживают мультипользовательские аккаунты с контролем доступа на основе ролей и разрешениями для каждого рабочего пространства. Соедините любое с LiteLLM, если вы также хотите ключи API для каждого пользователя для программного доступа.
Как я могу сохранить модели и историю чата через перезагрузку контейнера?
Смонтируйте именованные тома по задокументированным путям: /root/.ollama для моделей Ollama, /app/backend/data для состояния Open WebUI, /app/server/storage для AnythingLLM. Сделайте резервную копию этих томов как любую другую папку данных; файлы модели это самая большая часть на порядок больше.
Действительно ли самостоятельное размещение LLM с Docker дешевле, чем использование API?
Зависит от объема. Используемый RTX 3090 плюс электричество побеждает цену размещённого API, как только ваша команда использует более нескольких сотен тысяч tokens в день. Ниже этого, размещённые API обычно дешевле, чем амортизированное железо. Самостоятельное размещение выигрывает на конфиденциальности и предсказуемости раньше, чем на стоимости.