# Docker-образы

Готовые к развертыванию Docker-образы для AI-нагрузок на CLORE.AI.

{% hint style="success" %}
Разверните эти образы напрямую на [CLORE.AI Marketplace](https://clore.ai/marketplace).
{% endhint %}

## Быстрая ссылка для развертывания

### Самые популярные

| Задача                                | Образ                                | Порты     |
| ------------------------------------- | ------------------------------------ | --------- |
| Чат с ИИ                              | `ollama/ollama`                      | 22, 11434 |
| Интерфейс, похожий на ChatGPT         | `ghcr.io/open-webui/open-webui`      | 22, 8080  |
| Генерация изображений                 | `universonic/stable-diffusion-webui` | 22, 7860  |
| Генерация изображений на основе узлов | `yanwk/comfyui-boot`                 | 22, 8188  |
| LLM API сервер                        | `vllm/vllm-openai`                   | 22, 8000  |

***

## Языковые модели

### Ollama

**Универсальный исполнитель LLM — самый простой способ запускать любую модель.**

```
Образ: ollama/ollama
Порты: 22/tcp, 11434/http
Команда: ollama serve
```

**После развертывания:**

```bash
# SSH на сервер
ssh -p <port> root@<proxy>

# Загрузить и запустить модель
ollama pull llama3.2
ollama run llama3.2
```

**Переменные окружения:**

```
OLLAMA_HOST=0.0.0.0
OLLAMA_MODELS=/root/.ollama/models
```

***

### Открыть WebUI

**Интерфейс, похожий на ChatGPT, для Ollama.**

```
Образ: ghcr.io/open-webui/open-webui:ollama
Порты: 22/tcp, 8080/http
```

Включает встроенный Ollama. Доступ через HTTP-порт.

**Автономный (подключиться к существующему Ollama):**

```
Образ: ghcr.io/open-webui/open-webui:main
Порты: 22/tcp, 8080/http
Окружение: OLLAMA_BASE_URL=http://localhost:11434
```

***

### vLLM

**Высокопроизводительная подача LLM с API, совместимым с OpenAI.**

```
Образ: vllm/vllm-openai:latest
Порты: 22/tcp, 8000/http
Команда: python -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3.1-8B-Instruct --host 0.0.0.0
```

**Для больших моделей (много GPU):**

```bash
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Meta-Llama-3.1-70B-Instruct \
    --tensor-parallel-size 2 \
    --host 0.0.0.0
```

**Переменные окружения:**

```
HUGGING_FACE_HUB_TOKEN=<your-token>  # Для моделей с доступом по токену
```

***

### Text Generation Inference (TGI)

**Производственный LLM-сервер от HuggingFace.**

```
Образ: ghcr.io/huggingface/text-generation-inference:latest
Порты: 22/tcp, 8080/http
Команда: --model-id meta-llama/Meta-Llama-3.1-8B-Instruct
```

**Переменные окружения:**

```
HUGGING_FACE_HUB_TOKEN=<your-token>
MAX_INPUT_LENGTH=4096
MAX_TOTAL_TOKENS=8192
```

***

## Генерация изображений

### Stable Diffusion WebUI (AUTOMATIC1111)

**Самый популярный интерфейс SD с расширениями.**

```
Образ: universonic/stable-diffusion-webui:latest
Порты: 22/tcp, 7860/http
```

**Для низкого объёма видеопамяти (8 ГБ или меньше):**

```bash
./webui.sh --listen --medvram --xformers
```

**Для доступа через API:**

```bash
./webui.sh --listen --xformers --api
```

***

### ComfyUI

**Рабочий процесс на основе узлов для продвинутых пользователей.**

```
Образ: yanwk/comfyui-boot:cu126-slim
Порты: 22/tcp, 8188/http
Окружение: CLI_ARGS=--listen 0.0.0.0
```

**Альтернативные образы:**

```
# С общими расширениями
Образ: ai-dock/comfyui:latest

# Минимальный
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
```

**Команда ручной настройки:**

```bash
git clone https://github.com/comfyanonymous/ComfyUI && cd ComfyUI && pip install -r requirements.txt && python main.py --listen 0.0.0.0
```

***

### Fooocus

**Упрощённый интерфейс SD, похожий на Midjourney.**

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp, 7865/http
Команда: git clone https://github.com/lllyasviel/Fooocus && cd Fooocus && pip install -r requirements.txt && python launch.py --listen
```

***

### FLUX

**Новейшая генерация изображений высокого качества.**

Используйте ComfyUI с узлами FLUX:

```
Образ: yanwk/comfyui-boot:cu126-slim
Порты: 22/tcp, 8188/http
```

Или через Diffusers:

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp
```

```python
# После SSH
pip install diffusers transformers accelerate
python << 'EOF'
from diffusers import FluxPipeline
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell")
pipe.enable_model_cpu_offload()
image = pipe("A cat", num_inference_steps=4).images[0]
image.save("output.png")
EOF
```

***

## Генерация видео

### Stable Video Diffusion

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp
```

```bash
pip install diffusers transformers accelerate
python << 'EOF'
from diffusers import StableVideoDiffusionPipeline
from diffusers.utils import load_image, export_to_video
pipe = StableVideoDiffusionPipeline.from_pretrained(
    "stabilityai/stable-video-diffusion-img2vid-xt",
    variant="fp16"
)
pipe.to("cuda")
image = load_image("input.png")
frames = pipe(image, num_frames=25).frames[0]
export_to_video(frames, "output.mp4", fps=7)
EOF
```

***

### AnimateDiff

Использование с ComfyUI:

```
Образ: yanwk/comfyui-boot:cu126-slim
Порты: 22/tcp, 8188/http
```

Установите узлы AnimateDiff через ComfyUI Manager.

***

## Аудио и голос

### Whisper (транскрипция)

```
Образ: onerahmet/openai-whisper-asr-webservice:latest
Порты: 22/tcp, 9000/http
Окружение: ASR_MODEL=large-v3
```

**Использование API:**

```bash
curl -X POST "http://localhost:9000/asr" \
    -F "audio_file=@audio.mp3" \
    -F "task=transcribe"
```

***

### Bark (Text-to-Speech)

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp
```

```bash
pip install bark
python << 'EOF'
from bark import SAMPLE_RATE, generate_audio, preload_models
from scipy.io.wavfile import write as write_wav
preload_models()
audio = generate_audio("Hello, this is a test.")
write_wav("output.wav", SAMPLE_RATE, audio)
EOF
```

***

### Stable Audio

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp
```

```bash
pip install stable-audio-tools
# Требуется токен HF для доступа к модели
```

***

## Модели зрения

### LLaVA

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp
```

```bash
pip install llava
python -m llava.serve.cli --model-path liuhaotian/llava-v1.6-34b
```

***

### Llama 3.2 Vision

Используйте Ollama:

```
Образ: ollama/ollama
Порты: 22/tcp, 11434/http
```

```bash
ollama pull llama3.2-vision
ollama run llama3.2-vision "describe this image" --images photo.jpg
```

***

## Разработка и обучение

### Базовый PyTorch

**Для пользовательских настроек и обучения.**

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp
```

Включает: CUDA 12.1, cuDNN 8, PyTorch 2.1

***

### Jupyter Lab

**Интерактивные ноутбуки для ML.**

```
Образ: jupyter/pytorch-notebook:cuda12-pytorch-2.1
Порты: 22/tcp, 8888/http
```

Или используйте базовый PyTorch с Jupyter:

```bash
pip install jupyterlab
jupyter lab --ip=0.0.0.0 --allow-root --no-browser
```

***

### Обучение Kohya

**Для LoRA и дообучения моделей.**

```
Образ: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Порты: 22/tcp
```

```bash
git clone https://github.com/kohya-ss/sd-scripts
cd sd-scripts
pip install -r requirements.txt
# Используйте скрипты обучения
```

***

## Справочник базовых образов

### Официальные NVIDIA

| Образ                                    | CUDA | Случай использования                 |
| ---------------------------------------- | ---- | ------------------------------------ |
| `nvidia/cuda:12.1.0-devel-ubuntu22.04`   | 12.1 | Разработка CUDA                      |
| `nvidia/cuda:12.1.0-runtime-ubuntu22.04` | 12.1 | Только runtime CUDA                  |
| `nvidia/cuda:11.8.0-devel-ubuntu22.04`   | 11.8 | Совместимость с устаревшими версиями |

### Официальный PyTorch

| Образ                                          | PyTorch | CUDA |
| ---------------------------------------------- | ------- | ---- |
| `pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel`  | 2.5     | 12.4 |
| `pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel`  | 2.0     | 11.7 |
| `pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel` | 1.13    | 11.6 |

### HuggingFace

| Образ                                           | Назначение             |
| ----------------------------------------------- | ---------------------- |
| `huggingface/transformers-pytorch-gpu`          | Transformers + PyTorch |
| `ghcr.io/huggingface/text-generation-inference` | TGI сервер             |

***

## Переменные окружения

### Общие переменные

| Переменная               | Описание                                      | Пример         |
| ------------------------ | --------------------------------------------- | -------------- |
| `HUGGING_FACE_HUB_TOKEN` | HF API токен для моделей с доступом по токену | `hf_xxx`       |
| `CUDA_VISIBLE_DEVICES`   | Выбор GPU                                     | `0,1`          |
| `TRANSFORMERS_CACHE`     | Каталог кеша моделей                          | `/root/.cache` |

### Переменные Ollama

| Переменная            | Описание             | По умолчанию       |
| --------------------- | -------------------- | ------------------ |
| `OLLAMA_HOST`         | Адрес привязки       | `127.0.0.1`        |
| `OLLAMA_MODELS`       | Каталог моделей      | `~/.ollama/models` |
| `OLLAMA_NUM_PARALLEL` | Параллельные запросы | `1`                |

### Переменные vLLM

| Переменная               | Описание                          |
| ------------------------ | --------------------------------- |
| `VLLM_ATTENTION_BACKEND` | Реализация attention              |
| `VLLM_USE_MODELSCOPE`    | Использовать ModelScope вместо HF |

***

## Справочник портов

| Порт  | Протокол | Сервис                     |
| ----- | -------- | -------------------------- |
| 22    | TCP      | SSH                        |
| 7860  | HTTP     | Gradio (SD WebUI, Fooocus) |
| 7865  | HTTP     | Альтернатива Fooocus       |
| 8000  | HTTP     | vLLM API                   |
| 8080  | HTTP     | Open WebUI, TGI            |
| 8188  | HTTP     | ComfyUI                    |
| 8888  | HTTP     | Jupyter                    |
| 9000  | HTTP     | Whisper API                |
| 11434 | TCP      | Ollama API                 |

***

## Советы

### Постоянное хранилище

Подключайте тома, чтобы сохранять данные между перезапусками:

```bash
docker run -v /data/models:/root/.cache/huggingface ...
```

### Выбор GPU

Для систем с несколькими GPU:

```bash
docker run --gpus '"device=0,1"' ...
# или
CUDA_VISIBLE_DEVICES=0,1
```

### Управление памятью

Если заканчивается видеопамять (VRAM):

1. Используйте меньшие модели
2. Включить выгрузку на CPU
3. Уменьшите размер батча
4. Используйте квантизованные модели (GGUF Q4)

## Дальнейшие шаги

* [Сравнение GPU](https://docs.clore.ai/guides/guides_v2-ru/nachalo-raboty/gpu-comparison) - Выберите подходящий GPU
* [Совместимость моделей](https://docs.clore.ai/guides/guides_v2-ru/nachalo-raboty/model-compatibility) - Что где запускается
* [Руководство по быстрому старту](https://docs.clore.ai/guides/guides_v2-ru/quickstart) - Начните за 5 минут
