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.
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 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.
- Architecture. blitz.cloud runs on amd64 servers. Images built on an Apple Silicon Mac with a plain
docker buildare arm64-only and will not start. Build with--platform linux/amd64. - A declared port. Listen on something like 8080 and declare it with
EXPOSE 8080in the Dockerfile, so blitz.cloud picks it up without you typing it.
This command runs an image roughly the way blitz.cloud does:
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
- Sign in at dashboard.blitz.cloud. The first time, you claim your address, for example
lena. Your apps will live underlena.blitz.cloud. - Click Host something new and choose "An app from Docker Hub".
- 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.
- Choose a Version. Tags like
latestare marked "follows new releases"; a fixed tag like1.0.0never changes. Click Continue. - 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.
- 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 explains each message.
Try it with a ready-made example
The 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:
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.
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, Railway, Fly.io and 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.
Read next
blitz.cloud vs Render: always-on services, price and EU hosting
Render against blitz.cloud on sleeping and always-on services, price, the Frankfurt region, Docker images, Postgres and git deploys, with sources checked 8 October 2026.
blitz.cloud vs Heroku: a Heroku alternative in the EU, always on from 7 EUR a month
Heroku against blitz.cloud on always-on apps, price per app or per account, EU regions, Docker images and Postgres, with sources checked 25 September 2026.
Deploy a Docker image on blitz.cloud
Run any public Docker image on blitz.cloud, from Docker Hub, ghcr.io or Quay, with HTTPS, environment variables and persistent storage built in.
Put your first app online today.
Start on the free plan, no credit card. Move to Pro when an app has to stay online.
Create your account