How it works
Two words matter. An image is a standardized package of all the files, binaries, libraries and configurations needed to run a container. A container is that image running as an isolated process for each of your app's components. One image can start many containers.
You describe the image in a Dockerfile: a text document with the commands that assemble an image. FROM picks a base image, COPY adds files, RUN runs a build command, CMD sets the default command. Then you build the image and run it.
# Dockerfile
FROM node:22-alpine
COPY . /app
RUN cd /app && npm ci
CMD ["node", "/app/server.js"]$ docker build -t my-app . $ docker run -d --name web -p 8080:3000 my-app a3f9c1… started $ docker ps $ docker logs web $ docker stop web
-d runs the container in the background, -p publishes a container port on the host, --name names it, -v mounts a volume, --rm removes it when it exits. In -p 8080:3000 the first number is the port on the computer and the second is the port inside the container.
Two things to know on day one. First, when a container is deleted, the files written inside it are deleted too; a volume keeps data beyond the life of one container. Second, a published port is open on all network interfaces by default; put 127.0.0.1 first in the publish string to keep it local.
Container or virtual machine
| Container | Virtual machine | |
|---|---|---|
| Kernel | Shared with the host | Its own |
| What it holds | One app and its libraries | A whole operating system |
| Isolation | Between processes | Between machines |
| Best for | Shipping one app the same way everywhere | A whole computer you log in to |
| Root inside | Yes, inside the container | Yes |
The two combine. A virtual machine is the computer you rent, and containers run inside it. The kernel your containers share is then that machine's own kernel, not a neighbour's.
Do you need one?
Take a container when
- You ship one app to many places. The image carries its libraries, so the server needs only Docker.
- You run tools you do not want to install. Postgres, Redis, a test database: one command each.
- Several apps share a server. Each has its own libraries, so versions do not clash.
Skip it when
- It is one script. Run it directly.
- You need your own kernel. Kernel modules need a virtual machine.
- You run code from strangers. Containers share a kernel; an agent sandbox adds a machine around it.
Docker on Uno
Every paid plan is a Linux computer with root and Docker. Install Docker with curl -fsSL https://get.docker.com | sh, or ask your agent to. The 3-day trial is a regular Small or Plus computer with root, Docker and SSH, plus 3 hours of Uno AI. Rule of thumb: builds, Docker images and test runs want 8 GB or more (our guidance).
Small: $5 a month
What Uno adds under your containers
Your own kernel
Every computer is a Firecracker microVM with its own kernel. Your containers share that kernel, and no other customer's.
Sleep keeps them running
With nothing to do for 10 minutes the computer sleeps, and memory and running programs are saved while it sleeps. Your containers are there after the wake.
An agent that knows Docker
Ask for a database or a bot in a chat in Uno Work. The agent can write the Dockerfile and run the container while you watch.
A computer for your containers, from $5 a month
Every plan is a real Linux computer with root and Docker. Pick the size; move up or down any time, your files come with you.
Small
A Telegram bot, a VPN, a small backend
$5/ month
- 1 vCPU · 1 GB
- 15 GB disk
- 25 GB cloud storage
- 5 boosts a month
Plus
Agents that work with your laptop closed
$20/ month
- 4 vCPU · 4 GB
- 40 GB disk
- 100 GB cloud storage
- Uno Work in the cloud
Pro
A product in production, a second MacBook
$70/ month
- 16 vCPU · 16 GB
- 120 GB disk
- 300 GB cloud storage
- Speed of a MacBook Air M4
Max
A team and many agents at once
$200/ month
- 32 vCPU · 48 GB
- 300 GB disk
- 1,024 GB cloud storage
- 5 public IPv4
Add Uno AI to any plan: 40 h of AI work a month on Small, 100 h on Plus, unlimited on Max. Today: GLM-5.3 Flash and MiMo v2.6 Pro. Or sign in with your own Claude or ChatGPT.