What Docker actually needs
Containers themselves are nearly free — the overhead is the runtime processes inside them. The right plan depends on which containers you run, not on the count.
Rules of thumb (per service)
- **Static site / nginx**: 256 MB RAM, 1 vCPU shared.
- **Node.js API**: 512 MB – 1 GB per process.
- **Postgres**: 1 GB minimum, 2 GB comfortable.
- **Redis**: 100 MB unless you cache a lot.
- **Headless Chrome / Playwright**: 1.5 GB per browser instance.
- **Background worker (Sidekiq / Bull / Celery)**: 256 MB.
A typical small SaaS stack
nginx + Next.js + Postgres + Redis + worker = **about 4 GB RAM, 2 vCPU**. Our [products](/products) page has plans at that tier for €6–€8/month.
Storage
Docker images and volumes share the host disk. Reserve at least:
- 20 GB for OS + base images
- 5 GB per app image you keep around (build artefacts add up)
- Whatever your DB volume needs
`docker system df` shows where space is going. Run `docker system prune -af --volumes` weekly.
Network
Bandwidth caps matter if you're shipping images, video, or large API payloads. Every v4vm plan ships with at least 1 TB/month and a 1 Gbps port — well over what most container workloads use.
When to upgrade
- CPU steal time > 10% (see `vmstat 1`) — switch to a CPU-prioritised plan.
- `free -m` shows Available < 10% under load — bump RAM.
- `docker stats` shows containers OOM-killed — same.
When in doubt, start hourly. You can resize without downtime on most v4vm plans.