Skip to content

Docker hosting in 2026: where to run containers

Nick Potts, who builds Ployz. Published .

TL;DR: Three small containers (512 MB each, 100 GB of traffic) cost $13 to $156 a month on the hosting platforms if they run all month, and about $7 on a Hetzner server in Europe. Platform bills grow with every container you add; a server bill stays flat until the box is full.

  • Pick Fly.io if you run one or two small containers and want them near users in several regions. It's the cheapest platform in every scenario I priced.
  • Pick Cloud Run if your traffic is spiky and your container can scale to zero.
  • Pick Render, Railway or DigitalOcean App Platform if you want Git-push deploys, never want to see a server, and accept paying per container.
  • Pick your own server if you run three or more containers or need real disk space. Five 1 GB containers cost $43 to $317 on platforms and $11 on a Hetzner server.
  • Pick Ployz, which I build, if your coding agent runs that server: Ployz turns it into a platform the agent deploys to, with HTTPS for every service, volumes and a private network between servers, while deleting a service, a volume or a domain waits for you.

Docker hosting is any service that takes a container image and keeps it running at a public address. It comes in three shapes: platforms that run your image for you (Fly.io, Render, Railway, DigitalOcean App Platform), cloud container services (Google Cloud Run, AWS Fargate, Lightsail), and a plain server where you run Docker yourself. All three run the same image. What you pay for is everything around it: a certificate, a disk that survives a redeploy, more copies, and someone to restart it when it dies.

What would your containers cost?

Pick how many containers you run, how much RAM each needs, and how much traffic leaves your app each month. Each row prices the containers running 24/7, with RAM rounded up to the nearest size that platform sells.

RAM in total
1.5 GB
Server size needed (RAM + 1 GB for the OS)
2.5 GB
  • Fly.io$13/mo

    shared-cpu-1x (2x above 2 GB), $6 per GB of RAM, $0.02/GB out. Shared IPv4 and 10 certificates free.

  • Render (Hobby workspace)$35/mo

    Smallest instance with enough RAM; 5 GB of bandwidth included, then $0.15/GB.

  • Railway Hobby$26/mo

    Assumes each container uses all its RAM and 0.1 vCPU on average. Private registry images need Pro ($20).

  • DigitalOcean App Platform$15/mo

    Shared-CPU containers; their transfer allowances pool, then $0.02/GiB. No volumes.

  • Google Cloud Run, always on$156/mo

    Instance-based billing, 1 vCPU per instance, us-central1, after the free tier. Custom-domain load balancer not included.

  • AWS ECS on Fargate$63/mo

    0.25 vCPU tasks with public IPv4, plus an Application Load Balancer, its two IPv4s and egress past 100 GB.

  • AWS Lightsail containers$21/mo

    One container service per container, scale 1. 500 GB per service, then from $0.09/GB.

  • DigitalOcean Droplet + Docker by hand (US)$24/mo

    Basic Droplet with enough RAM: 4 GB $24, 8 GB $48, 16 GB $96. You set up Docker and Caddy yourself.

  • Your own server + Ployz$7/mo

    Hetzner CX23 to CX53 (Europe) with IPv4. One server is on Ployz's Free plan, custom domains included; past one CX53, add Ployz Pro, $19 a month (coming soon).

Prices checked 2026-10-01. Move the sliders to match your app.

At the defaults, a server with Ployz is about $7 and Fly.io, the cheapest platform, is $13. Fly only gets close with one or two tiny containers. Fly's shared-cpu-1x is a slice of one CPU, while the Hetzner CX23 gives you two vCPUs and 4 GB, so the gap grows as soon as you add RAM or containers.

How much does Docker hosting cost?

For three 512 MB containers and 100 GB of traffic, the developer platforms charge $13 to $35 a month. AWS charges $21 to $63, and Cloud Run $156 if the containers never scale to zero. A server is $7 in Europe or $24 for a US Droplet.

The calculator's defaults and two bigger steps:

Option3 × 512 MB, 100 GB5 × 1 GB, 500 GB10 × 2 GB, 2 TB
Fly.io$13$43$167
DigitalOcean App Platform$15$60$250
AWS Lightsail containers$21$50$400
Railway Hobby$26$85$320
Render$35$199$549
AWS Fargate + load balancer$63$135$386
Cloud Run, always on$156$317$803
DigitalOcean Droplet, Docker by hand (US)$24$48$192
Hetzner server + Ployz (Europe)$7$11$36

Platform bills grow in a straight line because each container is priced as its own instance. A server bill moves in steps: one box holds everything until you run out of RAM. That's the whole argument for a server, and I went through the fees behind it in the hidden costs of PaaS.

I've paid the platform way myself: about $600 for my first month on Laravel Cloud, then $500+ a month on Railway. Today one €80 dedicated server runs more than I ever ran on Railway.

Where can you host a Docker container?

Seven places cover most of what people use. All of them run a standard Linux image.

Fly.io

Fly bills by the second for what you provision. A shared-cpu-1x Machine with 256 MB is $2.19 a month, and each extra GB of RAM is $6.00 (fly.io/pricing), so 512 MB is about $3.69 and 1 GB about $6.69.

  • Traffic: $0.02 per GB out in North America and Europe (resource pricing).
  • Volumes: $0.15 per GB, one per Machine.
  • Dedicated IPv4: $2 a month.
  • Images: fly deploy --image runs an image you've already built (deploy docs).

Where it wins: the cheapest platform here, with regions near your users. Where it falls short: the CPU is a slice, and a volume ties a Machine to one server. More in Fly.io pricing.

Render

Render runs a Dockerfile from your repo or a prebuilt image, in fixed sizes: $7 for 512 MB and 0.5 CPU, $25 for 2 GB and 1 CPU, $85 for 4 GB and 2 CPU (pricing).

  • No 1 GB size, so a 1 GB container costs $25.
  • Bandwidth: 5 GB on the $0 Hobby workspace, 25 GB on Pro ($25 a month), then $0.15 per GB (bandwidth docs).

Where it falls short: the size steps and bandwidth price make it the most expensive developer platform at every size I priced. More in Render pricing.

Railway

Railway charges for usage: $10 per GB of RAM and $20 per vCPU per month, $0.15 per GB of volume and $0.05 per GB of egress. Hobby is $5 a month including $5 of usage; Pro is $20 including $20 (pricing).

The catch for Docker users: "private Docker registry deployments require the Pro plan" (services docs). More in Railway pricing.

DigitalOcean App Platform

App Platform sells containers by size: $5 for 512 MiB, $12 for 1 GiB, $25 for 2 GiB and $50 for 4 GiB on shared CPU. Each size includes 50 to 250 GiB of transfer, pooled across your team, then $0.02 per GiB (App Platform pricing).

  • The $5 and $10 sizes can't scale to more than one container.
  • No volumes: "App Platform does not support volumes" (limits).

More in DigitalOcean pricing.

Google Cloud Run

Cloud Run has two billing modes, in us-central1 (Cloud Run pricing):

ModevCPU-secondGiB-secondRequestsIdle
Request-based$0.000024$0.0000025$0.40 per millionfree
Instance-based (always on)$0.000018$0.000002nonebilled

One 1 vCPU instance running all month is about $47 of CPU alone. Outbound traffic is $0.12 per GiB to North America after the first free GiB (network pricing).

That's why Cloud Run looks expensive in my table and cheap in Google's examples. Google prices a public API with 10 million requests a month at $13.69 on request-based billing. If your traffic is spiky and your container starts fast, request-based Cloud Run can beat everything here. If it has to stay warm, it's the most expensive option.

AWS: ECS on Fargate, or Lightsail containers

Fargate charges $0.040478 per vCPU-hour and $0.004446 per GB-hour in US East (Fargate pricing), so a 0.25 vCPU, 512 MB task is about $9 a month. The rest is what makes it expensive:

  • Application Load Balancer: $0.0225 an hour, about $16.43 a month, plus $0.008 per LCU-hour (ELB pricing).
  • Public IPv4: $0.005 an hour each, $3.65 a month (VPC pricing).
  • Data out: $0.09 per GB after 100 GB free a month across your account (EC2 pricing).

I go through Fargate line by line in AWS Fargate pricing.

Lightsail containers are the simple AWS option: $7 for 0.25 vCPU and 512 MB, $10 for 1 GB, $40 for 1 vCPU and 2 GB, with 500 GB of transfer per container service and $0.09 per GB after that (Lightsail pricing). You pay whether the service is running or disabled, until you delete it (Lightsail docs).

A plain server

A server gives you a fixed price for a fixed amount of CPU and RAM, and you run as many containers as fit.

ServervCPU / RAMMonthlyRegionsSource
Hetzner CX232 / 4 GB$6.49 + about $0.60 IPv4Germany, FinlandHetzner price list
Hetzner CX334 / 8 GB$9.99 + about $0.60 IPv4Germany, FinlandHetzner price list
Netcup VPS 5002 / 4 GB, 64 GB SSD, traffic included€8.26 incl. VAT, 12-month termEurope; Manassas (US) about €1 morenetcup VPS
DigitalOcean Basic 4 GB2 / 4 GB, 4,000 GiB transfer$24, then $0.01 per GiBevery regionDroplet pricing, bandwidth

Hetzner's own US servers cost more than DigitalOcean's since its 2026 price rises; I compared them in Hetzner vs DigitalOcean.

Where it wins: a Hetzner CX33 runs eight 512 MB containers or five 1 GB ones for about $11. Where it falls short:

  • Setup. You set up Docker, a reverse proxy and firewall rules yourself.
  • One location. Fly can put copies near users in many regions.
  • No scale to zero. For a project that's idle 23 hours a day, request-based Cloud Run can be cheaper.
  • Backups. Nothing backs up your volumes unless you set it up.

What changes the bill?

A private registry

You need one only if you build images somewhere other than where they run and the code is private. If a platform builds from your Git repo, you don't need a registry at all.

RegistryPriceLimits worth knowingSource
GitHub Container RegistryFree for nowGitHub promises a month's notice before that changesGitHub Packages billing
Docker Hub Personal$01 private repo; 200 pulls per 6 hours signed in, 100 per IP anonymousDocker pricing, pull limits
Docker Hub Pro$9/month billed yearly, $11 monthlyUnlimited private repos and pullsDocker pricing
Amazon ECR$0.10 per GB-month500 MB free for a year for new customersECR pricing

Which registries each platform pulls from matters more than the registry's price:

  • Render deploys private images from Docker Hub, GHCR, GitLab, Google Artifact Registry and ECR. Images must be linux/amd64 and under 10 GB compressed, and Render doesn't keep a copy (Render docs).
  • Railway needs the $20 Pro plan for private registries (Railway docs).
  • DigitalOcean App Platform pulls from its own registry, Docker Hub and GHCR, but only redeploys on a new tag automatically for its own registry (App Platform docs).
  • Lightsail takes public images or images you push straight to the container service.
  • A server pulls from anything docker login works with, or builds on the box with no registry.

The Docker Hub anonymous limit bites people on a server: 100 pulls per 6 hours per IP. Sign in on the server, or use GHCR.

HTTPS on a custom domain

OptionHTTPS on a custom domainSource
Fly.ioFirst 10 certificates free, then $0.10/month each; wildcard $1/monthFly pricing
RenderCustom domains and TLS on every workspace planRender pricing
Railway"Free SSL certificates automatically provisioned and renewed"Railway docs
DigitalOcean App PlatformIssued automatically when you add the domainApp Platform docs
Cloud RunLoad balancer recommended; built-in domain mapping is "not production-ready"Cloud Run docs
AWS FargateACM certificates are free, but need the ~$16/month load balancerACM pricing
AWS LightsailUp to 4 custom domains per service, validated with CNAME recordsLightsail docs
ServerCaddy or another reverse proxy with Let's Encrypt, set up by you

On a server, HTTPS is a one-time setup: point the domain at the server, run Caddy, list your containers. How to set up a VPS covers that part.

Persistent storage

Every platform limits containers with a disk, and DigitalOcean App Platform has none.

OptionPersistent storageCatchSource
Fly.ioVolumes, $0.15/GB-monthOne volume per Machine, one server, no automatic replicationFly volumes
RenderDisks, $0.25/GB-monthNo multiple instances, and a brief downtime on every deployRender disks
RailwayVolumes, $0.15/GB-monthNo replicas; 5 GB max on Hobby, 50 GB on Pro; small downtime on redeployRailway volumes
DigitalOcean App PlatformNoneUse Spaces or a managed databaseApp Platform limits
Cloud RunCloud Storage buckets mounted as files"Not a fully POSIX-compliant file system", no file lockingCloud Run docs
ServerThe server's own diskBackups are your job

The pattern is the same everywhere: a container with a disk can't be in two places, so it restarts on deploy instead of swapping over cleanly. That's what a database on a disk is, on any platform. If you're putting Postgres in a container, I compared the options in Postgres hosting.

Scaling

On platforms, scaling means more copies behind their load balancer. Railway allows 6 replicas per service on Hobby and 42 on Pro (pricing), Lightsail up to 20 nodes, and Fly, Cloud Run and Fargate add instances. DigitalOcean App Platform only autoscales on dedicated-CPU sizes from $29 a month, and Render lists horizontal autoscaling as a Pro feature. Cloud Run scales to zero and back on its own, which is its main advantage.

Most small apps never need more than one copy of each container. I think the common mistake is paying for horizontal scaling before there's traffic that needs it.

Which should you pick?

If you…Pick
Run one or two small containers in several regionsFly.io
Have spiky traffic and a container that starts fastCloud Run, request-based
Want Git-push deploys and never want to see a serverRender, Railway or DigitalOcean App Platform
Already live in AWSFargate, or Lightsail for a simpler bill
Run three or more containers, or need real disk spaceYour own server
Want your own server with a platform's workflowYour own server with Ployz

Where Ployz fits

The work a server leaves you (HTTPS, deploys, restarts, a network between boxes) is what I built Ployz to do. It's built for coding agents on your own servers: paste Read ployz.dev/agents.md and deploy this repo to my server. into Claude Code, Codex or Cursor and the agent sets it up and deploys. Deleting a service, a volume or a domain waits for you, so the agent can work on a live server without wiping it. Ployz runs any Docker image on a server you rent, or builds your app from GitHub with no Dockerfile for Node, Python, Ruby, PHP, Go, Rust, Java and Elixir.

ployz up --server root@your-server

That installs Ployz on a Linux server with systemd, builds the current directory and gives it an HTTPS address.

  • Images from any registry: Docker Hub, GHCR or any other, public or private. Give each release its own tag, because Ployz doesn't watch registries.
  • No registry needed when it builds from GitHub, on your server or in your own GitHub Actions.
  • HTTPS for every service: a ployz.app address, or your own domain, both included.
  • Volumes with a storage limit on Ubuntu LTS, and one-click Postgres, MySQL, Redis and MongoDB.
  • More servers: add one with a single command. Servers join an encrypted WireGuard network, services reach each other at NAME.internal, and a service can run up to 50 replicas.
  • Preview environments for every pull request, and a CLI with --json on every command that coding agents can drive.
  • A restore point for each database, and moving a database to another server with seconds of downtime.
  • Monitoring and searchable logs for every container, and uptime checks on your public services, in the same dashboard as the deploys.

The Free plan covers one server. Pro, coming soon, is $19 a month with 3 servers and $5 for each extra server. Get started.

FAQ

Is there free Docker hosting?

A little, with conditions. Render has a free 512 MB instance with limits, Railway's Free plan gives $1 of usage a month with a 0.5 GB cap per service (pricing), and Cloud Run's free tier covers 180,000 vCPU-seconds and 2 million requests a month on request-based billing. None is meant to run a production app around the clock; Render's limits are in Render's free tier.

What's the cheapest way to host Docker containers?

A rented server. A Hetzner CX23 in Europe (about $7 a month) runs three or four small containers, and a CX33 (about $11) runs eight 512 MB containers or five 1 GB ones. In the US, a $24 DigitalOcean Droplet or a Netcup VPS in Manassas does the same job.

Do I need a container registry?

Only if you build images on one machine and run them on another, with private code. Building on the server, or on a platform that builds from Git, needs no registry. GHCR is free for now if you do need one.

Can I run Docker Compose in production?

On one server, yes. Docker's docs support Compose for single-host production. For several servers, see how to run Docker Compose across multiple servers.

Why is Cloud Run so expensive in this comparison?

Because I priced containers running all month. Instance-based Cloud Run bills around the clock, and one 1 vCPU instance is about $47 of CPU. Request-based billing charges only while requests are handled, which is far cheaper for spiky traffic.

How I checked

I checked every price on 2026-10-01 on each provider's own pricing pages and docs, linked next to each number. Everything is in USD before tax, in the cheapest US region unless I say otherwise. Render, DigitalOcean App Platform and Lightsail sell fixed sizes, so I used the smallest plan with enough RAM. Cloud Run egress uses Google's Premium Tier rate to North America. Past one 16 GB Droplet or one Hetzner CX53, the estimate adds more of the same box. I build Ployz, so weigh the "Where Ployz fits" section with that in mind.

Let your coding agent run your containers on your own server with Ployz: get started.

Run your apps and databases on your own servers with Ployz.

Deploy your app