Skip to content

Solutions · Containers

How much server does Docker need?

Containers are processes sharing one kernel, not small virtual machines — the daemon holds about 100 MB and everything after that is just your own processes. So the answer is smaller than the question expects: a proxy, an app, a database and a cache come to roughly 515 MB together, which fits with room to spare on BD-8 at $11.90.

What a container actually holds

Ranges, not benchmarks

Your image, configuration and traffic move these more than any table can. Run docker stats on your own stack — that is the only number that applies to you.

Typical resident memory for common container workloads
ContainerTypical memoryFits on BD-8 (8 GB)
A reverse proxynginx, Caddy, Traefik1560 MB129 at the high end
A small web appNode, Python, Go — one process60200 MB38 at the high end
PostgreSQL or MySQLsmall dataset, default pool200500 MB15 at the high end
Redisas a cache, bounded by maxmemory20200 MB38 at the high end
A JVM serviceJava, Kotlin, Elasticsearch5002000 MB3 at the high end

The arithmetic

What each plan holds

Memory, minus 300 MB for the operating system and 100cache — at about 515 MB.

Container and stack capacity per plan, with disk and live prices
PlanRAMWhole stacksSmall appsDiskPriceDeploy
VPS-11 GB1325 GB$9.90Deploy
BD-88 GB1538100 GB$11.90Deploy
BD-1212 GB2359200 GB$16.90Deploy
BD-2424 GB46120300 GB$30.90Deploy

Disk is the second surprise and the one people meet later: images, volumes and logs accumulate quietly. Put docker system prune in a weekly cron before it becomes urgent, not after.

Against ourselves

When you should not buy this

A managed container platform costs more because it does the operating. That is a real thing to buy.

A VPS gives you root and hands you the updates, the restarts, the certificates and the pager. That is dramatically cheaper and it is genuinely more work. If you do not want that work, a managed platform is the honest answer and we would rather point at it than sell a machine that ends up abandoned with an unpatched daemon exposed to the internet. Two smaller pieces of the same advice: set a memory limit on every container so a misbehaving one dies instead of your database, and do not reach for Kubernetes on a single machine — an orchestrator with nothing to schedule is only complexity.

Questions

What people ask before they buy one.

How much RAM does Docker itself use?
Very little, and this is the part that surprises people. The Docker daemon holds roughly 100So the arithmetic is simply: your machine's memory, minus about 300system and 100 MB for the daemon, divided among the processes you actually run.
How many containers can a small VPS run?
More than the question implies, because "a container" is not a unit of size. Ten reverse proxies and one Elasticsearch are wildly different machines. On BD-8 — 8 GB for $11.90 — a proxy, a web app, a database and a cache together come to roughly 515 MB, which leaves most of the machine spare. The table above does the division; run `docker stats` on your own stack for the number that actually applies to you.
Is a VPS cheaper than a managed container platform?
Almost always on price, and that is not the whole comparison. A platform charges more because it does the operating: updates, restarts, certificates, the pager at 3am. A VPS gives you root and hands all of that back to you. If you want to run containers and are willing to own that work, a VPS is dramatically cheaper. If you would rather not, pay the platform — we would rather say so than sell you a machine that ends up abandoned with an unpatched daemon on it.
Do I need Docker Swarm or Kubernetes?
On one machine, no. Compose is enough for a stack that lives on a single server, and it is the right answer for the overwhelming majority of self-hosted setups — an orchestrator's job is scheduling across machines, and with one machine there is nothing to schedule. Reach for Kubernetes when you genuinely have several machines and a reason for the complexity, not before.
What breaks first — memory, CPU or disk?
Memory, usually, and it breaks loudly: the kernel's out-of-memory killer picks a process and ends it, which looks like a container mysteriously restarting. Set memory limits per container so the one that misbehaves is the one that dies rather than your database. Disk is the second surprise — images, volumes and logs accumulate quietly, so `docker system prune` belongs in a weekly cron long before it becomes urgent.
Which image should the host run?
Any of ours — every plan runs every image and Docker runs on all of them. Ubuntu LTS is the default worth taking if you have no opinion, simply because most container documentation assumes it. The distribution matters far less than it feels like it should: the containers bring their own userland, so the host is little more than a kernel and a daemon.