Solution

VPS as a Docker host: containers with full kernel control

Cutter 8 · $34/moCutter 16 · $62/mo
Short answer

Docker needs a real kernel, which means KVM rather than an OpenVZ or LXC container. Two dedicated cores and 4 GB run a handful of small services; 8 GB is the comfortable point for a full Compose stack with a database. Every OnionVPS instance is KVM, so overlay filesystems, cgroups v2, nested virtualisation and custom kernels all work without workarounds.

What you need

Specification floor for docker & container host
ResourceWhat you actually need
CPU2 dedicated cores minimum; containers multiply quickly
RAM4 GB for a few services, 8–16 GB for a Compose stack with Postgres
DiskNVMe — image layers and database writes are IO-bound
KernelKVM with cgroups v2, overlay2 and nested virtualisation

Recommended plans

Cutter

Cutter 8

$ 34 /month
vCPU
4 × dedicated
RAM
8 GB
Storage
160 GB NVMe SSD
Transfer
10 TB
IPv4 / IPv6
1 / /64 routed
Configure
Cutter

Cutter 16

$ 62 /month
vCPU
6 × dedicated
RAM
16 GB
Storage
320 GB NVMe SSD
Transfer
15 TB
IPv4 / IPv6
1 / /64 routed
Configure
Clipper

Clipper 16

$ 92 /month
vCPU
8 × dedicated
RAM
16 GB
Storage
400 GB NVMe Gen4 SSD
Transfer
30 TB
IPv4 / IPv6
1 / /64 routed
Configure

Recommended locations

Location is usually the decision that matters most for this workload — either because latency dominates, or because jurisdiction does.

Why OnionVPS for this

  • True KVM virtualisation: your own kernel, so overlay2 and cgroups v2 behave exactly as documented.
  • Nested virtualisation is enabled, so you can run Docker-in-Docker or a full Kubernetes test cluster.
  • Custom ISO upload lets you start from Flatcar, Talos or a hardened base image.
  • Snapshots are instant and free, which makes a risky upgrade a two-minute experiment.

How to set it up

  1. Deploy a Cutter 8 with Debian 13 or Ubuntu 24.04

    Both ship recent kernels with cgroups v2 by default.

  2. Install Docker Engine from the official repository

    The distribution package is usually several versions behind.

  3. Create a non-root user in the docker group

    Or use rootless mode if the containers do not need privileged access.

  4. Put a reverse proxy in front

    Caddy or Traefik will obtain and renew TLS certificates automatically.

  5. Take a snapshot before every upgrade

    Free, instant, and it turns a failed deployment into a rollback.

Frequently asked questions

Can I run Docker on a VPS?

On a KVM VPS, yes, without restriction. On OpenVZ or LXC-based virtual servers, Docker either fails or requires unsafe workarounds, because those share the host kernel. Every OnionVPS instance is KVM.

Do you allow nested virtualisation?

Yes. You can run KVM guests, Docker-in-Docker, or a Kubernetes cluster inside your instance.

How much RAM for a Docker host?

Sum the memory limits of your containers and add 1 GB for the host. A typical web application, worker and Postgres stack fits in 8 GB.