Docker Cloud Sandboxes vs smol machines
Both give each agent its own microVM with its own Linux kernel. Docker Cloud Sandboxes is your local sbx sandbox moved to the cloud, for up to 24 hours and 10 at a time, while smol machines has no session cap, runs up to 1,000 machines and is open source end to end.
The companies and products
Docker Cloud Sandboxes
Docker Cloud Sandboxes runs Docker's sbx coding-agent microVMs on Docker-managed compute instead of your laptop.
Each sandbox is a microVM with its own Linux kernel and its own Docker Engine, started from the same sbx CLI you use locally, with Claude Code, Codex and other agents ready to run. You can move a sandbox from your laptop to the cloud and back, publish HTTPS ports and SSH in. It launched on September 24, 2026, is billed pay-as-you-go on a personal Docker account, and is built for developers who want their local agent sandboxes to keep going off their machine.
- Launched
- September 24, 2026
- Session length
- 1 hour by default, extendable to 24 hours from creation
- Default quota
- 10 concurrent and 50 stored sandboxes per account
- Regions
- Not published
smol machines
smol machines makes fast, isolated Linux microVMs that run the same way on your laptop, in their hosted cloud, or on your own servers.
The core is smolvm, an open-source microVM engine built on libkrun, where each machine has its own guest kernel. smol cloud is the paid hosted service that runs fleets of those machines behind a REST API and Node, Python and Rust SDKs. It is built for developers who want one VM model from local development to production, with live branching of running machines.
- Uptime SLA
- 99.95% on Pro, Startup and Enterprise
Which use cases each one fits
For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “280th cheapest of 367” means 279 of the other 366 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.
| Use case and its workload | Docker Cloud Sandboxes: price rank | smol machines: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A software factory runs many agents for days; Docker stops each sandbox at 24 hours and allows 10 at once, smol has no cap, and boat adds /dev/kvm and an API to drive agents. | 280th of 367, with limits $4,928 a month | 73rd of 367, with limits $604 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine all month does not fit in one Docker session; smol can keep a machine running, but with no desktop, browser or key proxy. | 276th of 366, with limits $5,110 a month | 148th of 366, with limits $1,038 a month | 5th cheapest of 366 $657 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month smol machines fits short code runs best of the three, with a one-minute minimum and branches of a warm machine that pay that minimum once. | 119th of 345, with limits $233 a month | 12th cheapest of 345 $140 a month | 186th of 345, with limits $2,000 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Serving your own users needs more than Docker's default 10 sandboxes at once; smol fits on its Startup plan, and boat adds a desktop, hosting on 50 ports and a credentials proxy. | 136th of 361, with limits $1,628 a month | 7th cheapest of 361 $531 a month | Cheapest of 361 $209 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month Both Docker and smol can start many rollouts from one prepared state with its memory, but Docker's 10-at-once default holds the fan-out back. | 114th of 360, with limits $7,000 a month | 111th of 360, with limits $6,978 a month | 34th of 360, with limits $2,000 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month Evals run many sandboxes side by side, which smol handles on its paid plans and Docker's default of 10 at once does not. | 167th of 364, with limits $1,400 a month | 36th cheapest of 364 $670 a month | 10th cheapest of 364 $200 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month CI that builds Android apps or boots VMs needs /dev/kvm, which boat exposes and neither Docker nor smol cloud offers. | 172nd of 377, with limits $672 a month | 66th cheapest of 377 $514 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB | 127th of 368, with limits $204 a month | 216th of 368, with limits $29 a month | 18th cheapest of 368 $26 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month Computer-use agents need a screen; Docker's sandboxes are terminal only, smol leaves the desktop to you, and boat streams a 60fps Linux desktop. | 268th of 369, with limits $1,400 a month | 90th of 369, with limits $156 a month | 6th cheapest of 369 $200 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 277th of 367, with limits $700 a month | 176th of 367, with limits $136 a month | 7th cheapest of 367 $200 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 262nd of 346, with limits $350 a month | 241st of 346, with limits $242 a month | 6th cheapest of 346 $90 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month | 190th of 338, with limits $7,000 a month | 148th of 338, with limits $4,344 a month | 71st of 338, with limits $1,800 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 248th of 360, with limits $350 a month | 252nd of 360, with limits $377 a month | 2nd cheapest of 360 $200 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month | Can't run it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | Docker Cloud Sandboxes | smol machines | boat |
|---|---|---|---|
| Isolation | MicroVM with its own Linux kernel and its own Docker Engine; hypervisor not named | libkrun microVM with its own guest kernel | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Session length | 1 hour by default, at most 24 hours from creation; resuming starts a new timer | No provider cap; an optional lifetime you set | No cap on paid plans; you set the time to live |
| Sandboxes at once | 10 by default; no published way to raise it | 20 on Standard, 100 on Pro, 1,000 on Startup; stopped machines still hold a slot | 100 on the $20 plan, up to 2,000 on higher plans, self-serve |
| Stop and resume | Stop keeps memory and files; a stopped sandbox costs nothing | Files survive a stop, memory paths are emptied; stopped disk keeps billing; a stopped machine wakes on the next command | Disk saved every minute and on stop; a stopped sandbox costs nothing; resume boots the machine again |
| Fork | Snapshot a running sandbox with disk or disk and memory, then restore it as a new sandbox | Branch a running machine into children that keep its memory and processes | Fork a running sandbox with its disk |
| Docker inside | Yes, its own Docker Engine; agent runs as a non-root user with sudo | Yes, with Docker data on the machine's ext4 disk | Yes, with root and systemd |
| Nested virtualization | Not documented | Not exposed in the cloud API; a local smolvm flag only | Yes, /dev/kvm for Android emulators and VMs |
| Shell access | SSH with Docker-issued certificates, plus the sbx CLI | Command API, sessions and a WebSocket terminal capped at one hour per connection; no SSH | SSH, plus a command API and terminal |
| Inbound access | Public HTTPS URL per published port, not protected by Docker sign-in; not a TCP tunnel | Up to 16 published ports through a returned URL or an authenticated connect route; no dedicated IP | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6 |
| Outbound rules | Allow and deny rules by host, with allow-all, balanced and deny-all presets | Blocked, open, or an allowlist of hosts and CIDR ranges | Open internet, no provider-side allowlist |
| Desktop and browser | Terminal sessions only | No hosted desktop; a guide shows running your own Chromium inside a machine | 60fps Linux desktop with Chromium and computer use |
| Coding agents | Claude Code, Codex, Copilot, OpenCode and more, run and attached to from the sbx CLI | Registry images with the Codex CLI and the Harbor eval harness, run through the command API | Seven agents preinstalled, with a prompt, steer and events API to drive them from outside |
| Keeping API keys out of the sandbox | Cloud proxy sets the auth header for built-in AI services and custom hosts; the sandbox sees a placeholder | Cloud secrets are environment variables the guest can read; placeholder swapping only in self-hosted smolvm | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Running it yourself | Same microVM and CLI on your laptop; move a sandbox between laptop and cloud | Open-source smolvm runs on your laptop or your own servers, with the same .smolmachine artifact | Cloud only, in the EU (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | Docker Cloud Sandboxes | smol machines | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Not published | Yes |
| Systemd | Not published | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | Yes | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | No | Yes | No |
| Wake on request | Not published | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Not published | Not published | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | No | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | Yes | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | Yes | Yes | No |
| Self-hosting | No | Yes | No |
| BYOC | No | Yes | No |
| Open source | No | Yes | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Yes | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | Yes | No |
| SOC 2 | No | No | No |
| HIPAA | No | No | No |
| EU data residency | No | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable CPU measurement for either one: neither Docker Cloud Sandboxes nor smol cloud has been run on the StarSling hpc-sandbox-benchmarks test, and Docker does not say what hardware it uses. boat did 26.69 runs per second on that Node.js build-and-test loop at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. smol publishes a boot time under 200ms for smolvm, which is a start-time figure, not CPU speed.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Docker Cloud Sandboxes and smol machines have no published run in this suite yet, so there is no like-for-like number to compare.
Pricing in five scenarios
Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.
| Scenario | Docker Cloud Sandboxes, a month | smol machines, a month | boat, a month |
|---|---|---|---|
| One coding agent, workdays 4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days | $49 · Docker Agentic Platform (pay-as-you-go) | $25 · Standard | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $204 · Docker Agentic Platform (pay-as-you-go) · with limits | $93 · Standard | $26 · $20/mo |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $2,464 · Docker Agentic Platform (pay-as-you-go) · with limits | $1,139 · Pro | $317 · $20/mo × 3 seats |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $700 · Docker Agentic Platform (pay-as-you-go) · with limits | $465 · Startup | $200 · $100/mo × 2 seats |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $1,400 · Docker Agentic Platform (pay-as-you-go) · with limits | $1,389 · Startup | $2,000 · $2000/mo · with limits |
Docker Cloud Sandboxes: Docker bills per second for the size you pick, from $0.07 an hour for 1 vCPU / 2 GiB to $1.12 an hour for 16 vCPU / 32 GiB, with no monthly fee. A stopped sandbox costs nothing, and volumes and egress are free.
smol machines: smol cloud charges a base fee for every hour a machine runs, plus the CPU and memory the guest actually uses, with a one-minute minimum and disk billed even while stopped. Pro ($20 a month) and Startup ($150 a month) are fees on top of usage, not credit.
smol machines: Plans start at $20 a month, and the whole fee is usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Docker ends every sandbox 24 hours after creation, so one agent that never stops does not fit in a single session, and its default of 10 sandboxes at once rules it out for 50 agents in parallel, sandboxes for your users and 1,000 short jobs at once. smol machines fits all five scenarios, but 50 agents need Pro and 1,000 short jobs need Startup, and stopped machines still count toward those caps. boat has no session cap, but at 1,000 short jobs at once its plans queue starts above 90 a minute, while smol on Startup starts the whole burst.
| Scenario | Docker Cloud Sandboxes | smol machines | boat |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops |
| None that bite | None that bite |
| 50 agents in parallel |
| None that bite | None that bite |
| Sandboxes for your users |
| None that bite | None that bite |
| 1,000 short jobs at once |
| None that bite |
|
Which one should you use?
Use Docker Cloud Sandboxes when
you already run agents in sbx on your laptop and want a few to keep going in the cloud for up to a day, with memory kept across stops and keys kept out of the VM.
- Stop with memory kept. For agents that pause between steps: a stopped Docker sandbox comes back with its memory and running processes, and costs nothing while stopped.
- Keys stay outside the VM. Docker's cloud proxy adds the auth header for you, so the sandbox only sees a placeholder, while smol cloud passes secrets in plainly.
- Your laptop sandbox, in the cloud. If you already run sbx locally, the cloud is the same microVM and CLI, and you can move a sandbox either way.
Use smol machines when
you need machines that run as long as you like or by the hundred, live branches with memory, or one open-source VM engine you can also run on your own servers.
- No session cap, many at once. For long or wide jobs: a smol machine runs until you stop it, and the Startup plan holds up to 1,000 machines.
- Live branches that wake on demand. For RL and test fan-out: branch a running machine with its memory and processes, and wake stopped ones on the next command.
- Open source, on your own servers. Teams that want one VM engine from laptop to their own servers can run smolvm themselves, with the same packed machine.
Where boat fits
Docker and smol both give an agent a small VM boundary, and leave the rest of the machine to you. If your agents run for days or by the dozen, need emulators, a desktop or a browser, or must be driven from your own app, look at boat.
Runs as long and as wide as the work
Docker ends each sandbox 24 hours after creation and runs 10 at once, so your code must stop and resume agents. smol has no cap, but 50 agents need its Pro plan, a fee on top of usage. boat's $20 plan runs 100.
A whole machine, screen included
Neither Docker nor smol cloud offers /dev/kvm or a desktop, so Android emulators cannot start there and computer-use agents have no screen. On smol you build and maintain your own browser stack. boat streams a 60fps desktop with Chromium.
Drive agents inside from outside
On Docker you attach to an agent's terminal from the sbx CLI; on smol you run it through exec calls. Either way you write a wrapper and parse text to know when it is done. boat has a prompt, steer and events API.
Use boat when your agents run for days or by the dozen and need a whole machine: Docker, Android emulators, SSH, a desktop and a browser, with coding agents you drive from outside and keys that never enter the sandbox. Compare it one to one: boat vs Docker Cloud Sandboxes and boat vs smol machines.
Questions people ask
Is Docker Cloud Sandboxes cheaper than smol machines?
Not in these scenarios. For one coding agent on workdays at 4 vCPU / 8 GiB, it is $49 on Docker against $25 on smol machines, and $20 on boat. In the other four scenarios Docker does not fit, because of its 24-hour session cap or its default of 10 sandboxes at once.
Which is faster, Docker Cloud Sandboxes or smol machines?
Neither has a comparable CPU measurement yet, so there is no fair speed answer. boat did 26.69 runs per second on the hpc-sandbox-benchmarks Node.js test at 4 vCPU / 8 GB.
Can Docker Cloud Sandboxes and smol machines run Docker?
Yes, both run Docker inside the VM. Docker gives each sandbox its own Docker Engine, and smol's guide says Docker data must live on the machine's ext4 disk. Neither offers /dev/kvm in the cloud for Android emulators or nested VMs, which boat does.
Can either run longer than 24 hours?
smol machines can: it has no provider cap, only an optional lifetime you set. A Docker cloud sandbox expires after one hour by default and cannot be extended past 24 hours from creation. boat has no session cap on paid plans.
Which one can fork a running sandbox with its memory?
Both. Docker snapshots a running sandbox with its memory and restores it as a new one, and smol branches a running machine into children that keep its memory and processes. boat forks a running sandbox with its disk, and the fork boots fresh.
Can I run them on my own machine?
Docker Sandboxes run on your laptop with the same sbx CLI, and you can move a sandbox to the cloud and back. smol's engine, smolvm, is open source and runs on your laptop or your own servers. boat is a hosted service only.
Try boat
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs Docker Cloud Sandboxes
- boat vs smol machines
- E2B vs Docker Cloud Sandboxes
- Daytona vs Docker Cloud Sandboxes
- Modal vs Docker Cloud Sandboxes
- Vercel Sandbox vs Docker Cloud Sandboxes
- Cloudflare Sandbox vs Docker Cloud Sandboxes
- Blaxel vs Docker Cloud Sandboxes
- Runloop vs Docker Cloud Sandboxes
- Tensorlake vs Docker Cloud Sandboxes
- Morph Cloud vs Docker Cloud Sandboxes
- CodeSandbox SDK vs Docker Cloud Sandboxes