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-сервер