Infrastructure

контейнер

Изолированный запущенный экземпляр Docker-образа с собственной файловой системой и сетью.

Что такое контейнер

Контейнер — запущенный экземпляр Docker-образа. Изолирован от хост-системы и других контейнеров через Linux-механизмы namespaces и cgroups: у контейнера собственная файловая система, сеть, процессы и ресурсные лимиты.

Контейнеры — эфемерны: при остановке и удалении все данные, записанные внутрь, теряются (если не используются постоянные тома).

Container vs VM

Контейнер Виртуальная машина
Изоляция Через ядро ОС Гипервизор + гостевая ОС
Накладные расходы Минимальные (<1%) 10–20% на гостевую ОС
Запуск Секунды Минуты
Размер Мегабайты Гигабайты
GPU-доступ Через passthrough Через passthrough или vGPU

Хранение данных

Данные внутри контейнера теряются при перезапуске. Для сохранения — монтировать папку или том:

# Монтировать папку с моделями (НЕ потеряются при перезапуске)
docker run --gpus all -p 8000:8000 \
  -v /home/user/models:/models \    # ← хост:контейнер
  vllm/vllm-openai:latest \
  --model /models/llama-3-8b

# Named volume (управляется Docker)
docker run -v models_data:/data my-app

Сеть

# Port mapping: хост:8080 → контейнер:80
docker run -p 8080:80 my-app

# Создать сеть для общения контейнеров
docker network create ml-net
docker run --network ml-net --name api my-api
docker run --network ml-net --name model my-model
# api может обращаться к model по hostname "model"

Связанные термины

  • Docker — платформа для контейнеров
  • Docker Image — шаблон, из которого запускается контейнер
  • persistent volume — постоянное хранилище для контейнера
  • NVIDIA Container Toolkit — GPU в контейнерах

Готовы запустить GPU-задачу?

Запустить GPU-сервер