Александр Руин

Консультант по проектированию AI‑систем

Александр Руин — консультант по проектированию систем. Помогаю спроектировать архитектуру, оценить риски и выстроить прозрачный процесс — от выбора технологий до сопровождения. Рутину берут на себя AI‑исполнители. Направления: автоматизация, интеграции, AI‑продукты.

Ollama в Docker 2026: установка, GPU и Open WebUI без лишних обещаний

Docker удобен для Ollama, если у вас уже есть домашний сервер, NAS или мини-ПК, где рядом живут Home Assistant, Jellyfin, n8n, базы данных и обратный прокси. Но это не магическая кнопка: контейнер не делает AI-сервер полностью изолированным, не обновляет модели сам по себе и не гарантирует быстрый первый запуск. Реальное время зависит от Docker Engine, драйверов NVIDIA/AMD, скорости загрузки образа и размера модели.

Ollama в Docker запуск нейросети в контейнере

Ключевые факты

  • Официальный образ ollama/ollama запускает API на 11434 и хранит модели в /root/.ollama.
  • Для NVIDIA GPU нужен NVIDIA Container Toolkit и проверка docker run --gpus all ... nvidia-smi.
  • Для AMD GPU у Ollama есть отдельный ollama/ollama:rocm, а также экспериментальный Vulkan-режим.
  • На macOS с Apple Silicon Docker Desktop не дает Ollama GPU-ускорение; нативная установка обычно правильнее.
  • Данные переживают пересоздание контейнера только при корректном volume; docker compose down -v удаляет volume.
  • Open WebUI часто ломается не из-за Ollama, а из-за неверного OLLAMA_BASE_URL между контейнерами и хостом.

Эта статья для тех, кто хочет поднять локальную нейросеть в Docker осознанно: с пониманием сети, volumes, GPU и типовых отказов, а не просто скопировать команду из выдачи.

В нашем тесте на домашнем Linux-сервере самым частым источником поломок был не сам ollama/ollama, а связка из трех вещей: неверный URL между Open WebUI и Ollama, случайное удаление volume при уборке Docker и неподтвержденный GPU runtime. Поэтому ниже сначала идут проверки, а уже потом команды запуска.

Что Docker решает, а что нет

Вопрос Нативная Ollama Ollama в Docker AI Home Server
Первый запуск Проще на ноутбуке Удобнее в серверном стеке Преднастроен
Изоляция Минимальная Контейнерная, но не security boundary для всех угроз Настраивается под задачу
Обновления macOS/Windows скачивают обновления, Linux через install script Ручной docker pull или отдельный updater По регламенту обслуживания
Модели В системной папке Ollama В Docker volume или bind mount На выделенном диске
NVIDIA GPU Нативно при подходящем драйвере Через NVIDIA Container Toolkit Проверяется при сборке
Apple Silicon Есть Metal GPU в нативной версии GPU passthrough в Docker Desktop для Ollama недоступен Лучше ставить нативно
Web UI Отдельно Open WebUI отдельным контейнером или bundled image Включается в комплект

Практический выбор такой: для Linux-сервера с Docker берите контейнер; для MacBook на M-серии ставьте Ollama нативно; для домашнего appliance без терминала лучше готовить сборку как продукт, а не как набор случайных контейнеров.

Проверка перед установкой

Минимальный чек-лист:

docker version
docker compose version
docker info | sed -n '1,25p'

Если нужен NVIDIA GPU:

nvidia-smi
docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 nvidia-smi

Если вторая команда не видит видеокарту, Ollama в контейнере тоже не увидит ее. Сначала ставьте драйвер и NVIDIA Container Toolkit, затем выполняйте:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Для Apple Silicon проверка другая: нативная Ollama поддерживает Apple M series с CPU и GPU, а Docker-вариант для macOS остается CPU-путем. Это нормально для эксперимента с маленькой моделью, но плохо для постоянного чата.

Минимальный запуск Ollama в Docker

CPU-вариант:

docker volume create ollama
docker run -d \
  --name ollama \
  -p 11434:11434 \
  -v ollama:/root/.ollama \
  ollama/ollama:latest

NVIDIA-вариант:

docker run -d \
  --name ollama \
  --gpus=all \
  -p 11434:11434 \
  -v ollama:/root/.ollama \
  ollama/ollama:latest

Проверка API и загрузка модели:

curl http://localhost:11434/api/tags
docker exec -it ollama ollama run llama3.2

Не считайте скачивание модели частью "мгновенного" запуска. Даже компактные 3B/7B модели занимают гигабайты, а первые ответы могут быть медленнее из-за загрузки модели в память.

Docker Compose: Ollama + Open WebUI

Для двух контейнеров в одной compose-сети используйте имя сервиса ollama, а не localhost:

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama:/root/.ollama

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    depends_on:
      - ollama
    ports:
      - "3000:8080"
    environment:
      OLLAMA_BASE_URL: http://ollama:11434
    volumes:
      - open-webui:/app/backend/data

volumes:
  ollama:
  open-webui:

Запуск:

docker compose up -d
docker compose logs -f --tail=100 ollama open-webui

Откройте http://localhost:3000. При первом входе Open WebUI создаст свою базу в volume open-webui; модели Ollama останутся в volume ollama.

Compose с NVIDIA GPU

Добавьте в сервис ollama блок GPU reservation:

    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

Поле capabilities обязательно: без него Docker Compose вернет ошибку при запуске GPU-сервиса.

Volumes: где лежат модели и как не удалить данные

Docker volume нужен не для красоты. Без него модели и служебные данные будут привязаны к жизненному циклу контейнера, а пересоздание станет рискованным.

Команды для контроля:

docker volume ls | grep ollama
docker volume inspect ollama
docker exec -it ollama ollama list

Безопасное обновление образа:

docker compose pull
docker compose up -d

Опасная команда:

docker compose down -v

Флаг -v удаляет volumes, то есть модели Ollama и данные Open WebUI. Используйте его только когда сознательно сносите стенд.

Практическая таблица troubleshooting

Симптом Частая причина Проверка Что сделать
Open WebUI пишет, что моделей нет OLLAMA_BASE_URL смотрит на localhost, а Ollama в другом контейнере docker exec open-webui curl -s http://ollama:11434/api/tags В одной compose-сети ставьте http://ollama:11434; если Ollama на хосте, пробуйте host.docker.internal или host network
host.docker.internal не работает на Linux Docker Engine Это имя не всегда доступно как в Docker Desktop docker run --rm alpine ping -c 1 host.docker.internal Добавьте extra_hosts: ["host.docker.internal:host-gateway"], используйте IP bridge или network_mode: host
Ollama работает на CPU вместо NVIDIA GPU Не настроен runtime, старый драйвер, cgroup/systemd проблема docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 nvidia-smi; docker logs ollama Настройте nvidia-ctk, перезапустите Docker, обновите драйвер, проверьте логи Ollama
После suspend/resume GPU пропал NVIDIA UVM/driver не восстановился docker logs ollama; nvidia-smi Перезагрузите хост или перезагрузите nvidia_uvm, затем контейнер
AMD GPU не виден Нужен :rocm, доступ к /dev/kfd//dev/dri, группы или ROCm-драйвер ls -lnd /dev/kfd /dev/dri /dev/dri/* Используйте ollama/ollama:rocm, проброс устройств и --group-add по group ID
На Mac M1/M2/M3 контейнер медленный Docker Desktop не дает Ollama GPU passthrough Сравните ollama ps нативно и в контейнере На Apple Silicon ставьте Ollama нативно, Open WebUI можно оставить в Docker
Модели исчезли после уборки Был выполнен docker compose down -v или удален volume docker volume ls; docker exec ollama ollama list Восстановите из backup volume; дальше обновляйте через pull + up -d без -v
Первый ответ очень долгий Модель загружается в RAM/VRAM docker exec ollama ollama ps Используйте меньшую модель, preload-запрос или настройте keep_alive
Open WebUI зависает на длинных ответах Таймаут между WebUI и Ollama Логи open-webui, повтор в CLI ollama run Уменьшите модель/контекст или настройте timeout-переменные Open WebUI

Эти проблемы регулярно всплывают в GitHub issues, Reddit и community-тредах: особенно связка Open WebUI в Docker + Ollama на хосте, GPU passthrough на Proxmox/Unraid/WSL2 и ожидание, что Docker на Mac использует Metal так же, как нативная Ollama. Точные команды выше опираются на официальные docs; форумы полезны здесь как карта симптомов, а не как единственный источник истины.

Когда нужен не Docker-гайд, а готовый AI-сервер

Docker хорош, если вы умеете читать логи, обновлять images и понимать, где находятся volumes. Если задача другая - поставить дома локальный AI-чат, Home Assistant и веб-интерфейс без ручного администрирования, лучше собирать это как appliance.

AI Home Server - мини-ПК с локальной нейросетью, Open WebUI, Home Assistant и понятной схемой обновлений/backup. Мы подбираем железо под модель, память, шум, энергопотребление и сценарии: чат, RAG по документам, умный дом, локальные automations.

Для подбора конфигурации напишите в Telegram: @onoutnoxon.

FAQ

Ollama в Docker действительно изолирована от системы? Частично. Контейнер отделяет процесс, сеть и filesystem, но GPU, volumes, порты, Docker socket и привилегированные режимы остаются зонами риска. Не публикуйте 11434 в интернет без прокси, авторизации и firewall.

Можно ли обновлять Ollama автоматически? Сам Docker-контейнер не обновляется сам. Нужен ручной docker compose pull && docker compose up -d или отдельный updater вроде Watchtower. Для production лучше pin конкретной версии, а не слепой latest.

Работает ли Docker-вариант на AMD? Да, но не тем же флагом, что NVIDIA. Официальный Docker-гайд Ollama использует ollama/ollama:rocm и проброс /dev/kfd//dev/dri; совместимость зависит от GPU, ROCm/Vulkan и прав устройств.

Что выбрать для MacBook на M-серии? Нативную Ollama. Официальная документация Ollama указывает GPU support для Apple M series и отдельно говорит, что GPU acceleration недоступен для Docker Desktop на macOS из-за отсутствия passthrough/emulation.

Почему Open WebUI не видит модели, хотя ollama list показывает их? Почти всегда это сеть. Внутри контейнера localhost означает сам контейнер, а не ваш хост и не соседний сервис. Для compose используйте http://ollama:11434; для Ollama на хосте смотрите host.docker.internal, extra_hosts или host network.

Смотрите также

Источники и проверка фактов

  • Ollama Docker docs — https://docs.ollama.com/docker
  • Docker Hub: ollama/ollama image — https://hub.docker.com/r/ollama/ollama
  • Ollama FAQ: Docker GPU, macOS GPU passthrough, updates, model storage — https://docs.ollama.com/faq
  • Ollama hardware support: NVIDIA, AMD ROCm, Metal, Vulkan — https://docs.ollama.com/gpu
  • Ollama troubleshooting: container logs, NVIDIA/AMD GPU discovery — https://docs.ollama.com/troubleshooting
  • NVIDIA Container Toolkit install/configure Docker — https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
  • Docker Compose GPU support — https://docs.docker.com/compose/how-tos/gpu-support/
  • Docker volumes lifecycle and persistence — https://docs.docker.com/engine/storage/volumes/
  • Open WebUI quick start and Docker Compose notes — https://docs.openwebui.com/getting-started/quick-start/
  • Open WebUI Ollama connection guide — https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-ollama/
  • Open WebUI troubleshooting: connection errors — https://docs.openwebui.com/troubleshooting/connection-error/
  • Community symptoms checked, not used as sole source of facts: Open WebUI discussion #5903 on host/container networking, Ollama issue #3849 on slow Docker on macOS M1, Ollama issue #8674 on GPU discovery, Reddit threads in r/OpenWebUI/r/ollama/r/docker about host.docker.internal, volumes and GPU passthrough.

Материал подготовлен при участии AI-инструментов и проверен редактором Александр Руин, основатель habab.ru. Обновлено: 2026-05-05.

О сервисе "AI Home Server"

AI Home Server — мини-ПК с предустановленной локальной нейросетью (Ollama), хабом умного дома (Home Assistant), медиасервером (Jellyfin), бэкапом (Syncthing) и AI-агентом в Telegram. Подключаешь к питанию и интернету — работает из коробки.

Ключевые преимущества:

  • Всё работает из коробки за 2 минуты
  • Локальная нейросеть без интернета и без цензуры
  • Все данные остаются у вас — никакого облака
  • AI + медиасервер + бэкап + умный дом = одна коробка
  • Управление голосом и текстом через Telegram
  • Не нужен программист для настройки

Для кого подходит:

Энтузиасты self-hosted и приватности Пользователи умного дома Гики и технические специалисты Малый бизнес (офисный AI-ассистент) Владельцы Raspberry Pi и мини-ПК

Сценарии использования:

💡 Локальный AI-ассистент через Telegram (как ChatGPT, но приватный)
💡 Центр управления умным домом (Home Assistant)
💡 Домашний медиасервер (Jellyfin — фильмы, музыка)
💡 Автоматический бэкап файлов (Syncthing)
💡 Офисный AI для малого бизнеса

📰 Промо-статьи наших решений

Изучите детальные обзоры наших технологических решений для различных отраслей:

🚀 Работаю до результата

Работаю до результата и бизнес-ценности, быстро корректирую подходы в процессе. Использую современный стек для качественного и быстрого решения задач.