Docker Server Resource Guide

How Much RAM and CPU Does a Docker Server Need?

Choose enough CPU, RAM and NVMe storage for the application, database, workers, logs and traffic you expect.

Quick answer

Start With 2 CPU, 2GB RAM and 20GB NVMe β€” Then Size for the Real Workload

The Docker-ready Ubuntu 24.04 image requires at least 2 CPU, 2GB RAM and 20GB NVMe storage. That is the minimum needed to provision the image.

A small API, private tool or development stack may run at that size. A production app with a database, workers, queue, search or frequent builds often needs 4GB or 8GB RAM and more CPU. Choose resources for everything running on the server, not just the main application container.

Recommended starting sizes

Choose a Docker Server Size That Matches the Stack

Use these configurations as practical starting points, then monitor the live server and resize before performance becomes a problem.

Minimum image size

2 CPU / 2GB RAM / 20GB NVMe

Suitable for a lightweight API, development stack, private dashboard or one small application.

  • Few containers
  • Low-to-moderate traffic
  • No heavy builds or processing
Comfortable small production size

2 CPU / 4GB RAM / 40GB+ NVMe

A better fit for an application, database, reverse proxy and background worker on one server.

  • Multi-container Compose stack
  • Database and cache
  • More room for updates and traffic spikes
Busier production workload

4 CPU / 8GB RAM / 80GB+ NVMe

Suitable for several production services, more workers, larger databases or regular processing work.

  • Higher concurrency
  • More demanding jobs
  • Several important containers
Provisioning requirement

Do Not Order Below the Docker Image Minimum

The selected Docker-ready image will not provision below 2 CPU, 2GB RAM and 20GB storage.

Keep every checkout option at or above those values. Larger applications may need more resources even though the image itself can provision at the minimum.

CPU choice

Add More CPU When the Containers Spend Time Processing

Container count does not decide CPU size. The work inside those containers does.

Busy APIs

Authentication, report generation, search and data transformation can keep CPU busy longer than simple cached requests.

Queue workers

Imports, exports, emails and scheduled jobs can create sustained processor demand even when website traffic is low.

Database queries

Sorting, joins, indexing and aggregation use CPU, especially when the dataset or connection count grows.

Image and document processing

Resizing images, creating PDFs, compression and media work can produce sharp CPU peaks.

Docker image builds

Dependency installation and compilation can use more CPU than the completed application needs while running.

Several demanding services

The application, database, workers and search service may all compete for CPU at the same time.

RAM choice

Allow RAM for Linux, Docker and Every Running Service

The full server memory is shared by the operating system, Docker and all container processes.

Why 2GB can be enough

  • One small application or API
  • Few worker processes
  • Little or no local database activity
  • Low traffic and limited background jobs

Why 4GB is often safer

  • Application and database on the same server
  • Redis, queue workers or monitoring included
  • More concurrent requests
  • More headroom for updates and memory spikes
Do not allocate every megabyte to containers

Linux still needs memory for system services, networking and filesystem cache. Leave room above normal container use rather than setting limits equal to the full server RAM.

Storage choice

Choose Enough NVMe Storage for Images, Volumes, Databases and Logs

The application code is only one part of Docker disk usage.

Docker images

Old image versions can remain after deployments and consume space quickly.

Persistent volumes

Uploads, databases and application data continue growing after the container is created.

Logs

Application and container logs can fill a small disk when rotation is not configured.

Build cache

Frequent builds leave temporary files and cached layers unless they are cleaned deliberately.

20GB is a small starting disk

It can suit a lightweight stack. Choose more storage when the server will keep a database, uploads, several large images, retained logs or backup files.

Three practical examples

What Size Fits These Docker Setups?

These examples show why the same number of containers can need very different resources.

Small private dashboard

App, reverse proxy and a lightweight database with low traffic.

Start around 2 CPU / 2GB RAM

Customer-facing web app

Application, PostgreSQL, Redis, reverse proxy and one or more workers.

Start around 2 CPU / 4GB RAM

Busy processing stack

Several production services, frequent jobs, larger database and regular builds.

Start around 4 CPU / 8GB RAM or larger
VPS or VDS

Choose VPS for Moderate CPU Demand and VDS for Dedicated CPU

Both options use the Docker-ready Ubuntu 24.04 image. The difference is how processor resources are allocated.

Docker VPS

Best for development, staging, private tools and production applications with moderate or occasional CPU use.

Configure Docker VPS β†’

Docker VDS

Best for important production apps, busy workers and workloads that need dedicated vCPU resources.

Configure Docker VDS β†’
Upgrade signals

Add More Resources When the Server Shows These Problems

  • CPU stays heavily used during normal traffic
  • Containers restart because memory is exhausted
  • Swap use becomes regular
  • API response times rise when workers run
  • Database queries slow as data grows
  • Builds or backups affect the live application
  • Disk space repeatedly runs close to full
  • You disable useful services just to keep the server stable
Before checkout

Use This Docker Server Sizing Checklist

  • Keep the order at or above 2 CPU, 2GB RAM and 20GB storage.
  • List the application, database, proxy, workers, queue and monitoring services.
  • Estimate normal and peak memory use for each major service.
  • Decide whether the server will build images or only pull completed images.
  • Allow storage for volumes, databases, uploads, logs and old images.
  • Leave RAM for Linux and filesystem cache.
  • Choose VDS when dedicated CPU matters to production performance.
  • Monitor the live stack and resize before customers notice a slowdown.
Continue planning

More Docker Server Guides

Docker Resource Questions

Docker Server CPU, RAM and Storage FAQs

Direct answers about minimum specifications, container resources, databases, storage and choosing VPS or VDS.

The Kamatera Docker-ready Ubuntu Server 24.04 image used by Website Hosts UK requires at least 2 CPU, 2GB RAM and 20GB storage. A smaller configuration will not provision.

It can be enough for a lightweight deployment with a small number of containers, modest traffic and limited background work. A database, search service, build process or several application containers can make 4GB or more the safer starting point.

Docker itself does not require a fixed number of CPU cores for every workload. The requirement comes from the applications inside the containers. Two CPU is the minimum for the selected Docker-ready image, while busy APIs, workers, builds and databases may need more.

No. Containers share the CPU resources assigned to the server. Several quiet containers can run on the same cores, but simultaneous processing, background jobs and traffic peaks can create contention.

No, but each process consumes memory and the combined usage must fit inside the server. Leave memory for Linux, Docker, the page cache and short-lived spikes rather than allocating every megabyte to containers.

The answer depends on the database engine, dataset, cache settings and query load. A small database may fit within a 4GB server alongside an application, while a larger or busier database may justify more RAM or a separate server.

Storage is used by the operating system, Docker images, writable container layers, persistent volumes, databases, logs and unused image versions. The 20GB minimum can support a small deployment, but production stacks should leave room for growth, updates and recovery files.

Old images, stopped containers, build cache, application logs and growing volumes can all consume disk space. Monitor usage and remove only resources you have confirmed are no longer required.

Choose VPS for development, private tools and workloads with moderate or occasional CPU demand. Choose VDS when production services need dedicated vCPU resources and steadier processing performance.

Often, yes. Package installation, dependency compilation and image builds can create short CPU, RAM and storage peaks. Building elsewhere and pulling a completed image can reduce pressure on a smaller production server.

Larger CPU, RAM and storage options can be selected when ordering, and available resize actions depend on the active server configuration. It is still sensible to start with enough headroom for updates and workload spikes.

Monitor server CPU, memory, swap, disk usage, disk I/O, load, container restarts, application response times and database performance. Resource decisions should be based on measured workload rather than container count alone.
More Docker help

Read the Other Docker VPS Guides

Use the other guides to choose resources, compare VPS and VDS, estimate container capacity and plan the applications you want to run.

Choose the Resources Your Docker Stack Needs

Start from 2 CPU, 2GB RAM and 20GB NVMe, then add RAM, CPU and storage for the full workload.

Configure Docker VPS or VDS