Comparison

Containarium vs Cloudflare Containers

These two barely compete, and the rate cards say so out loud. Cloudflare Containers is burst compute attached to a Worker — it wakes on a request, runs, and sleeps with an ephemeral disk. Containarium is a persistent Linux box you SSH into and come back to tomorrow. Here's the honest side-by-side, including the pricing math.

Choose Containarium when…

  • The environment has to survive — installed packages, caches, and work-in-progress still there next session.
  • You need more than 4 vCPU / 12 GiB / 20 GB, or you need a GPU.
  • SSH is a login, not a debug hatch — with per-user keys and arbitrary ports.
  • The workload runs most of the time, where always-on pricing beats per-second burst.
  • You need it on specific hardware — your own rack, a GPU node, a named region.

Choose Cloudflare Containers when…

  • The job is short, stateless and request-triggered — wake, work, sleep.
  • You're already building on Workers and want to shell out to a real container.
  • Running close to the end user across a global edge network matters more than where the data lives.
  • You move a lot of egress — their bandwidth pricing is hard to beat.
  • Duty cycle is low. Scale-to-zero genuinely costs pennies.

Same primitive — a container. Opposite center of gravity: a machine you keep vs a machine you rent for 90 seconds.

Side-by-side

Dimension Containarium Cloudflare Containers
Unit of deployment A box — persistent LXC container or K8s sandbox A container instance bound to a Durable Object, started from a Worker
Disk Persistent, snapshot- and backup-capable Ephemeral — a sleeping instance restarts with a fresh disk from the image
Max instance size Bounded by the host — whole bare-metal nodes if you want 4 vCPU / 12 GiB / 20 GB disk, hard ceiling
GPU PCI passthrough, multiple GPUs per box Not offered
Lifetime Runs until you stop or delete it; optional TTL and auto-sleep Sleeps after an idle timeout (10 min default); no guaranteed run duration
SSH First-class login — per-user keys, routed through the sentinel, arbitrary ports Debug access via a Wrangler proxy against your Cloudflare account; won't wake or keep an instance alive
Inbound networking Routable hostname with TLS, exposed ports, custom domains Through your Worker; end users can't open non-HTTP TCP or UDP to an instance
Outbound networking Full egress, with optional eBPF egress policy per box Internet by default, limited to ports 80/443 + DNS; optional Worker egress proxy
Placement You choose the host, pool, or your own hardware — data residency is explicit Nearest available edge location; not guaranteed, and not co-located with its Durable Object
Billing shape Box uptime by size — predictable for always-on Per-second: memory and disk on provisioned time, CPU on actual use
Egress cost Your own bandwidth on self-host / BYOC Very competitive — 1 TB included in NA/EU, then $0.025/GB
Open source Yes — Apache 2.0; self-host on one VM as the first-class path Proprietary, and coupled to the Workers platform

Cloudflare figures are from their published pricing and limits documentation as of August 2026. Check their docs for current specifics.

The pricing math, worked out

Cloudflare publishes per-second rates, which makes the shape hard to see. Converted to per-month, the design intent is obvious: memory and disk bill on provisioned wall-clock time, CPU bills only on use. That is a rate card built for something that sleeps.

Resource Published rate Per month (730 h) Billed on
Memory $0.0000025 / GiB-s $6.57 / GiB provisioned
vCPU $0.000020 / vCPU-s $52.56 / vCPU actual use
Disk $0.00000007 / GB-s $0.18 / GB provisioned

Cloudflare wins

Bursty: 1,000 × 10-minute jobs / month

On a basic instance (¼ vCPU, 1 GiB, 4 GB), ~167 billable hours works out to roughly $3 a month. There is no dedicated-capacity model that competes with that, and we won't pretend otherwise.

Watch the idle tail: the default 10-minute sleepAfter bills too, which can double a short job's cost.

Containarium wins

Always-on: one standard-4, 24/7

Their largest instance — 4 vCPU, 12 GiB, 20 GB — held awake for a month is $104 at 10% CPU and $293 at full tilt. The memory alone is $79 whether or not it does anything, because it bills on provisioned time.

And it still resets its disk every time it sleeps.

The crossover sits around 40–50% duty cycle. Below it, edge burst compute is cheaper than anything you can rent. Above it, dedicated capacity wins by roughly 3–5×.

The ephemeral disk is the real dividing line

Cloudflare states it plainly: "All disk is ephemeral. When a Container instance goes to sleep, the next time it is started, it will have a fresh disk as defined by its container image." That single sentence decides most architecture questions on their platform.

It means every apt install, every warmed build cache, every cloned repo and every uncommitted edit disappears after the idle timeout. The documented workaround is mounting object storage over FUSE, which gives you a bucket wearing a filesystem costume — fine for artifacts, wrong for a home directory, node_modules, or anything with real POSIX semantics. Snapshots are on their roadmap, not in the product.

A Containarium box keeps its disk. That is not a feature we bolted on — it is the reason the box exists.

"Can we use it as a dev machine?" — we actually checked

It's the obvious question once you see SSH in their changelog, so here is the honest scorecard against the three things a dev box has to do:

  • Partly SSH per developer. It works, but keys live in the container's deploy config — adding a teammate is a redeploy, not a user operation. There's no public port; you tunnel through wrangler, which authenticates against your Cloudflare account, so the real credential is account access rather than a key. And an open session won't keep the instance alive.
  • Yes Installing packages from upstream. Containers get internet by default and apt/npm/pip/GitHub all work. One catch: egress is limited to ports 80, 443 and DNS, so git+ssh:// and anything on a custom port won't connect.
  • Yes Scheduled daily jobs. Cron Triggers fire the Worker's scheduled handler, which starts the container. This part is clean, and it's the use case the platform is genuinely built for.

Two out of three — and the missing one poisons the other two. Installing packages on a machine that forgets them isn't a dev box; it's a CI runner with extra steps. (Cloudflare Workers on its own is a flat no here: a V8 isolate has no filesystem, no processes and no shell.)

Ceilings, not price tags

Two of the differences aren't gaps you can close with budget. Instances top out at 4 vCPU / 12 GiB / 20 GB, with a minimum 3 GiB of memory per vCPU and a maximum 2 GB of disk per GiB of memory — so you can't buy a CPU-dense or disk-heavy shape at any price. And there is no GPU option at all.

A single set of model weights blows past both limits. Anyone fine-tuning, serving a local model, or keeping a workspace alive across a week is outside the platform's envelope by construction — which is exactly the workload Containarium boxes and GPU passthrough exist for.

Where Cloudflare is genuinely better

Two things, and they're real. Egress: 1 TB included in North America and Europe, then $0.025/GB, is far below what the major clouds charge and well below what most self-hosting works out to at volume. And placement: instances start at the nearest edge location with a pre-fetched image, with no work from you. If your workload is latency-sensitive to end users worldwide and short enough that state doesn't matter, that combination is hard to argue with.

The honest framing is a barbell, not a shootout. Short, stateless, request-triggered, under the ceiling → their side. Persistent, large, GPU-backed, SSH-native, or pinned to hardware in a specific place → ours.

FAQ

What is the difference between Containarium and Cloudflare Containers?

Cloudflare Containers is burst compute attached to a Worker: an instance is started from your Worker code through a Durable Object, serves work, and sleeps — coming back with a fresh disk from the image. Containarium gives you a persistent Linux box with real root, persistent disk, systemd, a routable hostname and SSH, which stays as you left it until you delete it.

Can I use Cloudflare Workers or Containers as a dev machine over SSH?

Not practically. Workers itself is a V8 isolate with no filesystem, processes or SSH. Cloudflare Containers does support SSH via Wrangler and packages install fine — but all container disk is ephemeral, so everything you installed is gone after the idle timeout. Containarium boxes are built for exactly this: install once, come back tomorrow, state intact.

Which is cheaper?

It's almost entirely a duty-cycle question. Cloudflare bills memory and disk on provisioned wall-clock and CPU on actual use, so short jobs that sleep cost pennies. A continuously-running standard-4 is roughly $104–$293/month at their published rates for 4 vCPU and 12 GiB. The crossover is around 40–50% duty cycle.

Does Cloudflare Containers support GPUs?

No. Instance types top out at 4 vCPU, 12 GiB and 20 GB of disk with no GPU option. Containarium supports PCI-level GPU passthrough, including multiple GPUs per box, on bare-metal nodes you own or bring.

When should I pick Cloudflare over Containarium?

When the work is short, stateless and request-triggered, fits inside 4 vCPU and 12 GiB, and benefits from running close to the user — especially if you're already on Workers or move a lot of egress. Their edge placement and bandwidth pricing are genuinely strong there.

Get a box that remembers.

Persistent disk, real SSH, GPUs on request. Start free on the hosted cloud, or self-host the open source on your own VM.

Also comparing? vs E2B · vs Modal · vs Daytona · vs AWS Lambda