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

Отримати VPS arrow_forward

Скільки Docker-контейнерів витримає ваш VPS: вимоги до хоста

calendar_month September 14, 2026 schedule 13 хв. читання visibility 19 переглядів
person
Valebyte Team
Скільки Docker-контейнерів витримає ваш VPS: вимоги до хоста
summarize

TL;DR

  • An 8GB RAM VPS (4vCPU, 80GB NVMe) runs 10-20 standard Docker containers, excluding heavy apps.
  • Host requirements depend on combined peak load, not just container count. Estimate app load first.
  • Host RAM = total container limits + 25-40% headroom + 1GB for OS/Docker.
  • Host CPU = peak container CPU sum × 1.25.
  • Disk = data + images + logs + 30% free space.

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

Від чого залежать вимоги до Docker host server

Контейнери — не те саме, що віртуальні машини

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.