One machine.
Twelve of them.

Cut a server into containers that each behave like their own — then fit three times as many on it.

live · one box, twelve tenants

one server · 2 cores · 4 GB · 40 GBonline
12 containers6 vCPU · 12 GB handed out ×3
Scroll

01 — One front door

Everything arrives here.
Nothing lands wrong.

a website a login

web:443
ssh:22
hqnodealice.com
alicealice.comssh alice
bobbob.devssh bob
carolcarol.iossh carol

02 — Four dials each

Everyone gets a share.
Then it’s full.

what the machine really has

the machine
CPU1.2 / 2 coressold 6
MEMORY2.8 / 4 GBsold 12 GB
DISK24 / 40 GBsold 120 GB
TRAFFIC0.42 / 2 TBsold 6 TB
3 of the 12 on it
alicefull
CPU18%
MEM0.22 / 1 GB
DISK2.4 / 10 GB
NET150 GB left
bobfull
CPU26%
MEM0.30 / 1 GB
DISK2.9 / 10 GB
NET0 GB left
carolfull
CPU12%
MEM0.18 / 1 GB
DISK1.6 / 10 GB
NET240 GB left

03 — Pick a system

Any of these. Or one you built.

apklightestAlpine 3.2414 MB
aptUbuntu 24.0447 MB
aptDebian 1350 MB
dnfAlmaLinux 986 MB
dnfRocky 9100 MB
dnfFedora 43115 MB
dnfCentOS Stream 10125 MB
+Your ownany image
Dockerfile
FROM alpine:3.24
RUN apk add openrc openssh
CMD ["/sbin/init"]
.github/workflows/image.yml
uses: docker/build-push-action@v6
tags: ghcr.io/you/box:1
push: true
GitHub builds it
ghcr.io
paste · installed

04 — Nothing new to learn

No container tricks.
It’s just Linux.

the same six commands you already type

05 — Squeeze

Same box.
Three times as many.

the same 4 GB of memorypages squeezed small, and copies kept once
the same 40 GB of diskeverything squeezed on the way down

Get started

Bring one machine. Hand out twelve.