# How to deploy a Docker container for free

> Run a public Docker image online for free with HTTPS and no credit card. Tested steps for blitz.cloud, the image requirements, and what the free plan covers.

Web page: https://blitz.cloud/guides/deploy-docker-container-free/
Updated: 2026-09-26

You can deploy a Docker container for free on blitz.cloud: create an account without a credit card, click Host something new, search Docker Hub for the image, pick a version and a name, and it runs under an HTTPS address like `whoami.yourname.blitz.cloud`. The free plan has no time limit. An app nobody visits for 15 minutes goes to sleep and wakes on the next visit. The catch is that the image has to be public on Docker Hub, built for amd64, and able to run without root.

## What you need

- A blitz.cloud account. Sign up at [dashboard.blitz.cloud](https://dashboard.blitz.cloud/auth/login?register=1) with email, GitHub or Google, and confirm your email address. Until it is confirmed you can't create apps.
- A public image. The wizard searches Docker Hub as you type. For ghcr.io, Quay or another public registry, type the full name, such as `ghcr.io/owner/image`. Private images need a login blitz.cloud doesn't have.

## Will my image run?

Most failed first attempts come down to two things. You can check both on your own machine in a minute. Root is not one of them: an image that starts as root runs as root inside its own sandbox here.

1. Architecture. blitz.cloud runs on amd64 servers. Images built on an Apple Silicon Mac with a plain `docker build` are arm64-only and will not start. Build with `--platform linux/amd64`.
2. A declared port. Listen on something like 8080 and declare it with `EXPOSE 8080` in the Dockerfile, so blitz.cloud picks it up without you typing it.

This command runs an image roughly the way blitz.cloud does:

```bash
docker run --rm --platform linux/amd64 --security-opt no-new-privileges \
  -p 8080:8080 yourname/your-image:1.0.0
```

If `curl http://localhost:8080` answers, you are in good shape.

## Deploy the container

1. Sign in at [dashboard.blitz.cloud](https://dashboard.blitz.cloud/). The first time, you claim your address, for example `lena`. Your apps will live under `lena.blitz.cloud`.
2. Click Host something new and choose "An app from Docker Hub".
3. Type the image name into Which app? and pick it from the list. Official images are marked. A repository you pushed a few minutes ago can take a while to appear in Docker Hub's search.
4. Choose a Version. Tags like `latest` are marked "follows new releases"; a fixed tag like `1.0.0` never changes. Click Continue.
5. The next screen shows What this app needs: the port it will be reached on, whether it needs a database, and which folders survive a restart. blitz.cloud works these out by reading the image. If the port is wrong, you can change it under Advanced settings.
6. Give the app a Name and an address, then click Put it online.

You watch it go through its steps, and when it is done you get a link like `https://whoami.lena.blitz.cloud`. The certificate for your address is issued automatically; until it is ready, a browser can briefly show a certificate warning on a brand new account.

If nothing is ready yet, the app page says so in a sentence and shows the last lines the container printed. [App status and logs](https://blitz.cloud/docs/app-status-and-logs/) explains each message.

## Try it with a ready-made example

The [blitz-cloud-examples](https://github.com/blitzworks-io/blitz-cloud-examples) repository has three small apps that follow the rules above: a Node.js API, an Astro site behind nginx, and a FastAPI app. Build one, push it to your Docker Hub account, and deploy it with the steps above:

```bash
git clone https://github.com/blitzworks-io/blitz-cloud-examples.git
cd blitz-cloud-examples/python-api
docker build --platform linux/amd64 -t yourname/blitz-example-python-api:1.0.0 -t yourname/blitz-example-python-api:latest .
docker push --all-tags yourname/blitz-example-python-api
```

## What the free plan includes

| | Free plan |
| --- | --- |
| Apps | Up to 5 |
| Memory | 512 MB shared across your apps and databases |
| Storage | 10 GB |
| Databases | 1 |
| HTTPS | Automatic on every address |
| Sleep when idle | After 15 minutes without visitors, wakes on the next visit |
| Credit card | Not needed |

A pasted image gets the small size: 128 MB of memory reserved and up to 512 MB when it needs more. That fits most APIs and small web apps. A JVM app with a big heap or anything that needs several GB of RAM is a bad fit for the free plan today. The full rules are on [Limits](https://blitz.cloud/docs/limits/).

## Free Docker hosting compared

Most platforms that run Docker images have dropped their free plans or turned them into trials. This is what each one gives you for nothing today, from the providers' own pricing pages and docs, checked on 25 September 2026.

| | Free for how long | What sleeps, and when | Free database | Card to start |
|---|---|---|---|---|
| blitz.cloud | No time limit. 5 apps, 512 MB memory, 10 GB storage | Apps after 15 minutes without visitors, woken by the next visit | One, backed up nightly, doesn't expire | No |
| Render | 750 instance hours a month, 512 MB per service | Web services after 15 minutes without traffic | Postgres, 1 GB, expires after 30 days | No |
| Railway | $5 trial credit for 30 days, then a Free plan with $1 of usage a month | Only if you switch sleeping on | Paid from the usage credit | No |
| Fly.io | Trial of 2 machine hours or 7 days | Trial machines stop after 5 minutes | No free database | No, adding one ends the trial |
| Heroku | No free plan. Eco costs $5 a month | Eco web dynos after 30 minutes | No, Postgres from $5 a month | Yes |
| Google Cloud Run | Monthly free allowance of CPU, memory and 2 million requests | Scales to zero between requests | No, Cloud SQL is paid | Yes, a billing account |

The detailed comparisons are on [Render](https://blitz.cloud/compare/render/), [Railway](https://blitz.cloud/compare/railway/), [Fly.io](https://blitz.cloud/compare/fly-io/) and [Heroku](https://blitz.cloud/compare/heroku/). Sources: render.com/docs/free, railway.com/pricing, docs.fly.io/about/free-trial, heroku.com/pricing, cloud.google.com/run/pricing. Oracle Cloud also has an always-free tier, as a virtual machine you run yourself rather than a container platform.

## When blitz.cloud is the wrong choice

If you need servers outside Europe, GPU access, private images or arm64, pick something else for now. If you want a container online in the EU for nothing, it fits well. And if the code is yours and lives on GitHub, you can skip the image: connect GitHub, pick the repository, and blitz.cloud builds every push. See [deploy a GitHub project](https://blitz.cloud/docs/deploy-from-github/).
