Развертывание Ollama и vLLM в Docker на облачном сервере: от голой ОС до рабочего API
Пошаговый технический мануал: накат драйверов NVIDIA, установка Container Toolkit, запуск Ollama в фоне, проброс портов и защита эндпоинта через Bearer-токен и Nginx.
Чтобы запустить собственный аналог OpenAI на облачном сервере: арендуйте VPS или GPU-сервер на Ubuntu 24.04, установите Docker и nvidia-container-toolkit, запустите контейнер с Ollama или vLLM, скачайте нужную модель через CLI и настройте обратный прокси Nginx с SSL-сертификатом Let's Encrypt для безопасного доступа ваших приложений по защищенному HTTPS.
- Современные облачные провайдеры предлагают готовые образы с предустановленными драйверами CUDA, что экономит до часа рутинной настройки.
- Для безопасного использования открытого API в интернете обязательно закрывайте порт 11434 обратным прокси (Nginx) с авторизацией по токену.
- Ollama предоставляет стандартный REST эндпоинт, полностью совместимый со спецификацией OpenAI API (/v1/chat/completions).
- Запуск через Docker Compose позволяет за минуту развернуть связку из движка инференса и удобного веб-интерфейса Open-WebUI.
Шаг 1: Подготовка окружения и проверка GPU
После подключения к чистому серверу по SSH первым делом проверяем, видит ли операционная система установленный графический ускоритель, с помощью команды nvidia-smi.
Если драйверы не установлены, на Ubuntu 24.04 их проще всего поставить из официального репозитория Canonical командой ubuntu-drivers install, либо выбрать готовый системный шаблон с CUDA в панели хостинга (в Timeweb Cloud и Selectel такие образы доступны в один клик).
nvidia-smi
# Проверяем наличие драйвера и версию CUDA (рекомендуется CUDA 12.4+)Шаг 2: Установка Docker и NVIDIA Container Toolkit
Чтобы контейнеры Docker имели прямой доступ к ядрам и видеопамяти видеокарты, необходимо установить пакет nvidia-container-toolkit и перезапустить демон Docker.
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerШаг 3: Запуск Ollama и Open-WebUI через Docker Compose
Создадим файл docker-compose.yml, который поднимет сервер инференса Ollama и красивый веб-интерфейс Open-WebUI (визуальный клон ChatGPT для вашей команды).
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: always
ports:
- "127.0.0.1:11434:11434"
volumes:
- ./ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- ./webui_data:/app/backend/data
depends_on:
- ollamaШаг 4: Загрузка модели и тест запроса
После запуска контейнеров командой docker compose up -d скачиваем желаемую модель внутрь контейнера. Для примера возьмем Llama 3.1 8B:
docker exec -it ollama ollama run llama3.1:8b
# Проверка через curl (совместимо с OpenAI SDK)
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.1:8b",
"messages": [{"role": "user", "content": "Привет! Ответь одним предложением."}]
}'Проверенные серверы от надежных провайдеров
Aeza
Shared Start
CPU
1 ядер • 3.3 ГГц
RAM
1 ГБ
Диск
10 ГБ NVMe
Канал
200 Мбит/с
149 ₽/мес
Timeweb Cloud
Cloud Start
CPU
1 ядер • 3.3 ГГц
RAM
1 ГБ
Диск
15 ГБ NVMe
Канал
200 Мбит/с
299 ₽/мес
Часто задаваемые вопросы (FAQ)
Как подключить сторонние программы (Cursor, LangChain, n8n) к моему серверу?
В настройках Cursor, Continue.dev или LangChain укажите Base URL: http://ip-вашего-сервера:11434/v1 (или ваш HTTPS домен) и выберите имя модели, которую вы скачали в Ollama. API полностью совместимо с форматом OpenAI.
Что делать, если модель работает медленно?
Проверьте через nvidia-smi, действительно ли веса загрузились в GPU, а не в процессорную память. Если VRAM не хватило, Ollama автоматически оффлоадит часть слоев на медленный процессор (CPU/RAM), что резко снижает FPS.