bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward

Требования к Docker-хосту: сколько контейнеров потянет ваш VPS

calendar_month 14 сентября 2026 schedule 13 мин. чтения visibility 18 просмотров
person
Valebyte Team
Требования к Docker-хосту: сколько контейнеров потянет ваш VPS
summarize

TL;DR

  • VPS 4vCPU/8GB RAM/80GB NVMe тянет 10-20 типовых Docker-контейнеров (без тяжёлых БД/ML).
  • Ресурсы хоста определяются суммарной пиковой нагрузкой контейнеров, а не их числом.
  • Для RAM хоста: сумма лимитов контейнеров + 1 GB для ОС + 30% запас.
  • Для CPU хоста: пиковая сумма CPU контейнеров × 1,25. Диск: данные + образы + 30% запас.
  • 2 GB RAM: 3-6 лёгких контейнеров. 4 GB RAM: 5-10 сервисов. 8 GB RAM: 10-20 сервисов.

VPS с 4 vCPU, 8 GB RAM и 80 GB NVMe обычно тянет 10–20 типовых Docker-контейнеров, если среди них нет тяжёлой базы данных, транскодирования видео или ML-инференса.

Что определяет docker host server requirements

Контейнеры не равны виртуальным машинам

Docker-контейнеры используют общее ядро Linux, поэтому 15 контейнеров не означают 15 отдельных ОС. Лёгкие сервисы — Nginx, Traefik, Redis с небольшим кэшем, Telegram-бот, статический сайт, exporter для Prometheus — могут потреблять 20–150 MB RAM в простое. Однако docker host server requirements определяются не числом контейнеров как таковым, а их суммарной пиковой нагрузкой.

На одном VPS могут работать 30 контейнеров, если это небольшие сервисы с лимитами памяти. И наоборот, 3 контейнера способны полностью занять сервер: PostgreSQL на 8 GB, Elasticsearch на 4 GB и приложение, которое кодирует видео через FFmpeg. При подборе инфраструктуры полезно сначала оценить требования к серверу для self-hosted приложений под нагрузку, а затем распределить ресурсы между сервисами.

Формула расчёта ресурсов Docker-хоста

Рабочая формула для production: ресурсы хоста = сумма лимитов контейнеров + 25–40% резерва + ресурсы ОС. Для Linux, Docker Engine, journald, SSH и системного кэша оставляйте минимум 1 GB RAM, а на VPS с 2 GB RAM — не менее 400–600 MB свободной памяти.

RAM хоста = RAM контейнеров + 1 GB для ОС + 30% запас
CPU хоста = пиковая сумма CPU контейнеров × 1,25
Диск = данные + образы + логи + 30% свободного места
Трафик = входящий + исходящий + резерв под обновления и бэкапы

Например, приложение на 512 MB, PostgreSQL на 1 GB, Redis на 256 MB, Nginx на 128 MB и мониторинг на 512 MB требуют 2,4 GB по лимитам. С ОС и запасом это уже 4,5–5 GB, поэтому практичный минимум — VPS с 6 GB RAM, а безопасный выбор — 8 GB.

How much RAM for Docker host: сколько памяти закладывать

Память важнее номинального числа контейнеров

Вопрос how much ram for docker host нужно решать по рабочим наборам данных. База PostgreSQL использует RAM для shared_buffers и page cache, Redis хранит кэш в памяти, а Java-приложения и Elasticsearch резервируют heap. Контейнер без memory limit при пике может занять всю RAM VPS и вызвать OOM Killer.

  • 2 GB RAM: 3–6 лёгких контейнеров, reverse proxy, бот, небольшой сайт, SQLite или внешний managed DB.
  • 4 GB RAM: 5–10 сервисов, WordPress или Node.js-приложение, PostgreSQL до 1 GB рабочих данных, Redis до 256 MB.
  • 8 GB RAM: 10–20 контейнеров, несколько приложений, PostgreSQL, Redis, мониторинг и ежедневные бэкапы.
  • 16 GB RAM: 20–35 контейнеров, несколько БД, Grafana, Prometheus, CI-runner или умеренная аналитика.
  • 32 GB RAM и выше: Elasticsearch, ClickHouse, крупные PostgreSQL-инстансы, медиасервисы и интенсивные очереди.

Swap не заменяет оперативную память. Небольшой swap-файл на 1–2 GB помогает пережить краткий пик, но постоянная работа со swap увеличивает задержки базы данных в десятки раз. Для PostgreSQL и Redis лучше масштабировать RAM раньше, чем ждать, пока сервер начнёт активно обмениваться данными с диском.

Лимиты памяти в Compose

Даже на сервере с 8 GB RAM контейнеры должны иметь ограничения. Они предотвращают ситуацию, когда один процесс Node.js или PHP-FPM вытесняет базу данных и прокси.

services:
  app:
    image: ghcr.io/example/app:latest
    mem_limit: 768m
    cpus: 1.0
    restart: unless-stopped

  postgres:
    image: postgres:16
    mem_limit: 1500m
    cpus: 1.5
    environment:
      POSTGRES_PASSWORD: change-me

Лимиты не должны быть слишком низкими: контейнеру PostgreSQL с лимитом 256 MB будет не хватать памяти даже при небольшой нагрузке. После запуска проверяйте фактическое потребление через docker stats в часы пика.

Ищете надёжный сервер для ваших проектов?

VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.

Смотреть предложения →

Сервер под Docker: требования для стеков из 5, 15 и 30 контейнеров

Таблица-конструктор типовой конфигурации

Ниже приведены ориентиры для Linux VPS с Ubuntu 22.04/24.04, Docker Engine и NVMe-диском. В расчёт включён запас около 30% на пики, обновления образов, файловый кэш и кратковременный рост логов.

Типовой стек Примеры сервисов vCPU с запасом RAM с запасом Диск Трафик в месяц
5 контейнеров Nginx, приложение, PostgreSQL, Redis, cron 2 vCPU 4 GB 50 GB NVMe 0,5–1 TB
15 контейнеров 2–4 приложения, БД, Redis, Traefik, worker, мониторинг 4 vCPU 8 GB 80–120 GB NVMe 1–3 TB
30 контейнеров Несколько приложений, 2 БД, очереди, Prometheus, Grafana, exporters 6–8 vCPU 16 GB 160–250 GB NVMe 3–6 TB

Эта таблица отвечает на вопрос сколько контейнеров потянет VPS только для обычных web-стеков. Один контейнер с Minecraft-сервером, игровой сервер с активным миром или видеотранскодер может потребовать больше CPU, чем 20 API-сервисов. Для игровых нагрузок полезна отдельная оценка: например, требования к игровому серверу и числу игроков зависят от движка, мира и частоты тиков.

Как распределить ресурсы в типовом стеке

Для 15 контейнеров на 8 GB RAM разумно выделить 1,5 GB PostgreSQL, 512 MB Redis, 2–3 GB приложениям и worker-процессам, до 1 GB мониторингу и примерно 2 GB оставить ОС, Docker-кэшу и резерву. На 4 vCPU не назначайте всем сервисам лимит по 2 CPU: лимиты могут суммарно превышать число ядер, но в таком случае нужно тестировать одновременные пики.

Для проверки производительности CPU используйте sysbench cpu --threads=4 --cpu-max-prime=20000 run. Для web-приложения важнее стабильное время ответа под нагрузкой, чем формальное число ядер. Процессор с частотой от 3,0 GHz на ядро обычно лучше подходит для однопоточных задач PHP, Python и игровых серверов, чем большее число медленных vCPU.

Быстрый выбор
Нужен выделенный сервер?
Bare metal с NVMe в 70+ локациях — настройка и заказ за пару минут.
К серверам

Docker host RAM CPU sizing по масштабу нагрузки

Масштаб → спека для production VPS

Для Docker-хоста с 15 контейнерами и до 100 одновременных пользователей достаточно 4 vCPU, 8 GB RAM и 80 GB NVMe-диска.

Масштаб нагрузки vCPU RAM Диск Сетевой порт Цена
До 25 одновременных пользователей 2 vCPU 4 GB 50 GB NVMe 1 Gbps от $6/мес, ориентировочно на март 2025
До 100 одновременных пользователей 4 vCPU 8 GB 80 GB NVMe 1 Gbps от $12/мес, ориентировочно на март 2025
До 300 одновременных пользователей 6 vCPU 16 GB 160 GB NVMe 1 Gbps от $24/мес, ориентировочно на март 2025
До 1 000 одновременных пользователей 8–12 vCPU 32 GB 300 GB NVMe 1 Gbps от $48/мес, ориентировочно на март 2025

Цены являются общерыночным ориентиром, а не публичной офертой: итоговая стоимость зависит от региона, типа виртуализации, NVMe-объёма, включённого трафика и резервного копирования. Для интернет-магазина, SaaS или API важнее измерить RPS, p95 latency, запросы к БД и объём очередей, чем ориентироваться только на число зарегистрированных пользователей.

Docker server hardware requirements: CPU, NVMe и сеть

Когда CPU становится узким местом

Docker server hardware requirements по CPU особенно критичны для PHP-FPM, Node.js worker-процессов, Java, компиляции образов, шифрования, сжатия резервных копий и задач FFmpeg. Если средняя загрузка 4 vCPU постоянно превышает 65–70%, у хоста почти не остаётся запаса для пика или обновления контейнеров.

Проверяйте не только среднее значение CPU %, но и load average. На VPS с 4 vCPU краткий load 4–5 допустим, но устойчивый load 8–10 означает очередь задач на процессоре. Для CI/CD и сборки образов отделите runner от production-хоста: сборка React, Go или Python-зависимостей способна временно занять все ядра.

Почему NVMe важнее большого HDD

Диск Docker-хоста хранит образы, writable layers, volumes, логи и бэкапы. Для PostgreSQL, MySQL, Redis с AOF и Prometheus приоритетны низкие задержки I/O. NVMe обычно даёт заметно более предсказуемую работу при случайных операциях, чем медленный сетевой SSD или HDD.

  • Оставляйте не менее 25–30% диска свободным: заполненный том замедляет БД и ломает обновления образов.
  • Ограничивайте размер json-логов Docker: без ротации один аварийный контейнер может занять десятки GB.
  • Выносите ежедневные бэкапы за пределы основного VPS: локальная копия не спасает при удалении сервера.
  • Для БД с активной записью планируйте отдельный volume и следите за IOPS, а не только за GB.
{
  "log-driver": "local",
  "log-opts": {
    "max-size": "20m",
    "max-file": "5"
  }
}

Конфигурацию сохраните в /etc/docker/daemon.json, затем выполните systemctl restart docker. Перед перезапуском убедитесь, что сервисы имеют restart: unless-stopped.

Self hosted Docker server specs для баз данных и медиа

Тяжёлые контейнеры меняют расчёт

Self hosted Docker server specs для базы данных нельзя выбирать по той же таблице, что и для статических сайтов. PostgreSQL с рабочим набором 5–10 GB требует 16 GB RAM на хосте, если рядом работают приложение, Redis и мониторинг. Elasticsearch обычно нужен отдельный запас памяти: JVM heap в 2–4 GB не равен общему потреблению процесса и page cache.

Контейнер с Jellyfin, Plex или FFmpeg может использовать 2–8 vCPU на одно программное транскодирование 1080p. При аппаратном транскодировании требуется совместимость с GPU и проброс устройства в контейнер. Для таких задач стандартный VPS без GPU подходит только для лёгких операций, прямого воспроизведения или фоновой обработки без жёстких SLA.

Отдельный сервер или масштабирование

Когда одна БД стабильно потребляет более 40% RAM и более 30% дискового I/O, её лучше вынести на отдельный VPS или выделенный сервер. Это снижает риск, что обновление приложения, утечка памяти или внезапный всплеск HTTP-трафика повлияют на транзакции.

Выделенный сервер оправдан при 32–64 GB RAM, постоянной нагрузке на 8+ ядер, больших локальных данных и высоких требованиях к IOPS. Для CPU-инференса и тяжёлых вычислений сравнивайте модель VPS и bare metal по реальному профилю нагрузки: выбор между bare metal и VPS для ML inference зависит от продолжительности и параллельности задач.

Быстрый выбор
Нужен выделенный сервер?
Bare metal с NVMe в 70+ локациях — настройка и заказ за пару минут.
К серверам

Как проверить, сколько контейнеров потянет VPS

Измеряйте пик, а не потребление в простое

Проверка сервер под Docker требования начинается после развёртывания тестового стека. Запустите нагрузочный тест, импорт данных в БД, выполнение фоновых задач и резервное копирование одновременно или с минимальным интервалом. Именно такие сочетания чаще всего вызывают нехватку RAM и CPU.

# Текущая нагрузка контейнеров
docker stats --no-stream

# Использование диска Docker
docker system df -v

# RAM, swap и load average
free -h
uptime

# Задержки и загрузка диска
iostat -xz 1

Целевые значения для стабильного Docker-хоста: свободно 20–30% RAM или доступный файловый кэш, swap близок к 0, CPU в среднем ниже 70%, диск заполнен менее чем на 75%, а p95 ответа приложения не растёт при запуске backup-job. Если docker stats показывает 90% RAM только у одной БД, масштабировать нужно память, а не число контейнеров.

Минимальный набор мониторинга

Для 10+ сервисов установите node_exporter, cAdvisor, Prometheus и Grafana либо используйте внешний мониторинг. Следите за memory working set, рестартами контейнеров, 5xx-ошибками, свободным местом, inode и скоростью роста логов. Практический развёртывающий сценарий с Compose, SSL и бэкапами описан в материале Docker на VPS: от первого контейнера до production с бэкапами.

Настройте уведомление при 80% RAM, 75% диска, пяти рестартах контейнера за 10 минут и ошибках резервного копирования. Эти четыре алерта предотвращают большую часть аварий у self-hosted стеков.

Часто задаваемые вопросы

Ответы по ресурсам Docker VPS

Сколько RAM нужно для Docker-хоста с PostgreSQL? Для одного небольшого приложения, PostgreSQL и reverse proxy начинайте с 4 GB RAM и 2 vCPU. Если база хранит более 2–3 GB активных данных, работает Redis или есть несколько приложений, безопаснее выбрать 8 GB RAM. Оставляйте минимум 1 GB памяти ОС и файловому кэшу.

Сколько контейнеров можно запустить на VPS с 4 GB RAM? VPS с 4 GB RAM обычно выдерживает 5–10 лёгких контейнеров: proxy, приложение, бот, Redis с лимитом 256 MB и небольшую БД. Число снизится до 2–4, если есть Java, Elasticsearch, медиаобработка или PostgreSQL с большим кэшем. Лимиты памяти в Compose обязательны.

Нужны ли 4 vCPU для 15 Docker-контейнеров? Для 15 обычных web-контейнеров 4 vCPU — практичный ориентир, особенно при фоновых задачах и работе базы данных. Если сервисы большую часть времени простаивают, достаточно 2 vCPU, но время ответа ухудшится в пике. Для сборки образов, FFmpeg и CI лучше выделить 4–8 vCPU отдельно.

Какой диск выбрать для Docker и базы данных? Для Docker-хоста с PostgreSQL или MySQL выбирайте NVMe от 80 GB и сохраняйте 25–30% свободного пространства. На этом диске размещаются volumes, образы и логи. При объёме БД 50 GB разумно планировать не менее 160 GB NVMe с учётом индексов, временных файлов и обновлений.

Выводы

Практическая рекомендация

Для большинства self-hosted Docker-стеков из 10–20 сервисов выбирайте VPS с 4 vCPU, 8 GB RAM и 80 GB NVMe. Если в контейнерах работают PostgreSQL, Elasticsearch, Prometheus или медиасервис, закладывайте минимум 16 GB RAM и 30% резерва по CPU, диску и трафику.

SSD NVMe
Готовы запустить свой VPS?

NVMe VPS с активацией за 60 секунд: полный root-доступ, 20+ локаций, оплата картой или криптой.

Выбрать тариф

Поделиться записью:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.