Docker Cloud Sandboxes vs Modal VM Sandboxes
Both give a coding agent its own Linux VM with Docker inside, and both end it within 24 hours. Docker's sandbox is the same microVM you run on your laptop and keeps its memory when it stops, while Modal's VM Sandboxes are short-lived machines that scale to thousands at once on a big AI platform.
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
Modal VM Sandboxes
Modal is a serverless cloud for AI work, and VM Sandboxes are the version of its sandboxes that run in a virtual machine with their own Linux kernel.
You create a VM Sandbox from Python, TypeScript or Go code with runtime="vm", run commands in it, and terminate it when the job is done. Modal built the runtime on the Rust-based Cloud Hypervisor, so Docker, FUSE, systemd and nested cgroups work, with the same API, images and prices as its gVisor sandboxes. It became generally available on 1 October 2026 and suits teams that want many short-lived agent machines next to Modal's inference and training.
- Funding
- Over $466M raised
- Generally available
- 1 October 2026; early customers launched over 20 million VMs before that
- Session length
- Default 5 minutes, maximum 24 hours
- Compliance
- SOC 2 on every plan; HIPAA on 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 | Modal VM Sandboxes: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Both end a sandbox within 24 hours; Docker also allows only 10 at a time by default, and Modal loses files outside a Volume, while bochka keeps its disk with no session cap. | 280th of 367, with limits $4,928 a month | 84th of 367, with limits $759 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An agent that lives on its machine all month fits neither: Docker ends a sandbox 24 hours after creation and Modal stops at 24 hours too. | 276th of 366, with limits $5,110 a month | Can't run it | 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 Short code runs suit both: Docker bills small sandboxes by the second and keeps memory between runs, and Modal starts fast and runs thousands at once on Team. | 119th of 345, with limits $233 a month | Can't run it | 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 many users at once needs more than Docker's default 10 concurrent sandboxes; Modal's Team plan runs 5,000 containers, and bochka keeps each user's disk while it waits. | 136th of 361, with limits $1,628 a month | Can't run it | 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 Huge bursts of short rollouts are what Modal is built for, while Docker's default of 10 at once holds a burst back, and bochka queues very large bursts. | 114th of 360, with limits $7,000 a month | 171st of 360, with limits $16,322 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 | 167th of 364, with limits $1,400 a month | Can't run it | 10th cheapest of 364 $200 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month Both run Docker builds in a VM; Android or VM-image builds need /dev/kvm, which Modal offers on Team and Enterprise on request, Docker does not document, and bochka has on every plan. | 172nd of 377, with limits $672 a month | 188th of 377, with limits $1,064 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 | Can't run it | 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 Neither ships a screen: Docker's sandboxes are terminal only and Modal leaves Xvfb and VNC to you, while bochka has a 60fps desktop with Chromium. | 268th of 369, with limits $1,400 a month | Can't run it | 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 | Can't run it | 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 | Can't run it | 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 | Can't run it | 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 Many agents at once hits Docker's 10-sandbox default first; Modal scales wider but each VM ends within 24 hours. | 248th of 360, with limits $350 a month | 294th of 360, with limits $642 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 | Modal VM Sandboxes | bochka |
|---|---|---|---|
| Isolation and Docker | MicroVM with its own Linux kernel and Docker Engine; hypervisor not named; agent runs as non-root with sudo | VM on Cloud Hypervisor with its own Linux 7.2 kernel; Docker, systemd and FUSE work, you start dockerd yourself | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts, with Docker, root and systemd |
| Longest session | 1 hour by default, at most 24 hours from creation; resuming starts a new timer | 5 minutes by default, at most 24 hours; continue from a filesystem snapshot | No cap on paid plans; you set the time to live |
| Stop and resume | Stop keeps memory and files, and resume picks up where it left off; unused snapshots are deleted after 7 days | No paused state; a finished sandbox is gone, and only Volumes and snapshots keep files | Stop for free and resume with the whole disk, saved every minute; resume boots the machine again |
| Snapshot and fork | Snapshot a running sandbox with its disk, or disk and memory, and restore it as a new sandbox | Filesystem snapshot boots any number of new sandboxes; memory snapshots are alpha and end the sandbox | Fork a running sandbox with its disk |
| Sandboxes at once | 10 by default; no published way to raise it | 100 containers on Starter, 5,000 on Team, more on Enterprise | 100 on the $20 plan, up to 2,000 on higher plans, self-serve |
| CPU benchmark (4 vCPU / 8 GB) | Not measured | 15.54 runs/s | 26.69 runs/s |
| Nested virtualization | Not documented | Team and Enterprise plans only, on request | Yes, /dev/kvm on every plan for Android emulators and VMs |
| Desktop, browser, computer use | Terminal sessions only | Not offered; an example shows how to set up Xvfb and VNC yourself | 60fps Linux desktop with Chromium and a computer-use API |
| Coding agents | Claude Code, Codex, Copilot, OpenCode and more, run and attached to from the sbx CLI | Examples only; you install the agent yourself | 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 | Secrets are environment variables, or you run your own proxy in a sidecar | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Inbound access | Public HTTPS URL per published port, not protected by Docker sign-in; no TCP tunnel; SSH with Docker-issued certificates | Encrypted and raw TCP tunnels, connect tokens, inbound IP allowlist | 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 | Block all, IP-range allowlist, domain allowlist (beta) | Open internet, no provider-side allowlist |
| Regions | Not published | US, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75x | EU only: Germany, Finland, France |
| Laptop and cloud | Same microVM and CLI locally or in the cloud; move a sandbox either way | Cloud only | Cloud only |
Every feature Battleships tracks (43)
| Feature | Docker Cloud Sandboxes | Modal VM Sandboxes | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Not published | Yes | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | No | 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 | No | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Not published | Yes | 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 | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | No | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | Yes | No | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | No | Not published | Yes |
| Audit logs | Not published | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | No | Yes | No |
| HIPAA | No | Yes | No |
| EU data residency | No | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
Docker Cloud Sandboxes has no comparable measurement yet: it launched in September 2026, is not in the hpc-sandbox-benchmarks runs, and Docker does not say what hardware it uses. In the same run on 29 September 2026 at 4 vCPU / 8 GB, Modal's VM runtime did 15.54 Node.js build-and-test runs per second and bochka did 26.69, about 1.7 times the CPU work in the same time.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Modal VM Sandboxes measured on: VM Sandbox, request = size. Docker Cloud Sandboxes has 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 | Modal VM Sandboxes, a month | bochka, 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) | $15 · Starter · with limits | $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 | $178 · Starter · with limits | $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 | $2,229 · Starter · with limits | $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 | $792 · Team | $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 | $3,193 · Team · with limits | $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.
Modal VM Sandboxes: Modal bills by the second for whichever is higher, the CPU and memory you request or what you use, until the sandbox ends. Starter is free with $30 of monthly credit, Team is $250 a month with $100 of credit, pinning a region costs 1.15x to 1.75x, and egress above the allowance is $0.04 per GiB.
Modal VM Sandboxes: bochka charges one hourly rate per machine size, by the second, only while the sandbox runs. Plans start at $20 a month and the whole fee becomes usage credit; a stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Both cap a session at 24 hours, so one agent that never stops fits neither. Docker's default of 10 concurrent sandboxes is what rules it out for 50 agents in parallel, sandboxes for your users and 1,000 short jobs at once. Modal's root disk is gone when a VM ends, so the workday, always-on and fleet scenarios keep only files in a Volume or snapshot, and its 1,000-job burst relies on shared CPU above the request. On bochka the limit that bites is start speed: even the $2,000 plan queues a 1,000-job burst.
| Scenario | Docker Cloud Sandboxes | Modal VM Sandboxes | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite |
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users |
| None that bite | None that bite |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Docker Cloud Sandboxes when
you already run agents in sbx on your laptop and want a few of them to keep going in the cloud for up to a day, with memory kept across stops and outbound rules by host.
- Pause with memory. For agents that wait between steps: a stopped Docker sandbox comes back with its memory and running processes.
- The same sandbox on your laptop. If you already run sbx locally, the cloud is the same microVM and CLI, and you can move a sandbox either way.
- Agents ready to start. Claude Code, Codex, Copilot and OpenCode start from the sbx CLI, where Modal leaves the agent setup to you.
Use Modal VM Sandboxes when
you run large bursts of short jobs that finish within a day, need regions outside Europe, or already run your models on Modal.
- Thousands at once. For huge bursts of short jobs: Modal runs 5,000 containers at once on Team, while Docker defaults to 10.
- Regions you can pick. Modal runs in the US, EU and Asia-Pacific and lets you pin a region; Docker does not publish its regions.
- One platform with inference and training. Teams that already serve or train models on Modal can keep sandboxes on the same account and bill.
Where bochka fits
Both Docker and Modal end each sandbox within 24 hours and give the agent a terminal, not a screen. If your agents work for days, need Android emulators or a browser, or have to be driven from your own app, bochka gives each one a full VM that keeps its disk and has no session cap on paid plans.
No 24-hour cutoff
Docker ends a sandbox 24 hours after creation, so your code must stop and resume it in time. Modal ends its VM within 24 hours and drops the root disk, so you snapshot and reboot or keep files in a Volume.
A screen and /dev/kvm
Docker's sandboxes are terminal only and do not document nested virtualization. Modal offers /dev/kvm only on Team and Enterprise on request, and you install Xvfb, VNC and a browser yourself. bochka has both on every plan.
Agents driven from outside
On Docker you attach to an agent's terminal from the sbx CLI and parse its text; on Modal you install the agent and its keys sit in environment variables. bochka has a prompt, steer and events API and a credentials proxy.
Use bochka when your agents work for days or by the dozen in a machine they come back to, need Android emulators, a desktop or a browser, or have to be driven from your own app through an API. Compare it one to one: bochka vs Docker Cloud Sandboxes and bochka vs Modal VM Sandboxes.
Questions people ask
Is Docker Cloud Sandboxes cheaper than Modal VM Sandboxes?
For one agent on workdays Modal is cheaper, $15 a month against $49 on Docker, but Modal's files reset between days unless you use a Volume. For sandboxes for your users Modal fits at $792 a month on Team, while Docker's default of 10 at once does not fit. bochka runs these at $20 and $200 a month.
Which is faster, Docker Cloud Sandboxes or Modal VM Sandboxes?
There is no comparable CPU measurement for Docker yet. Modal's VM runtime did 15.54 runs per second on the hpc-sandbox-benchmarks test at 4 vCPU / 8 GB, and bochka did 26.69 in the same run.
Can Docker Cloud Sandboxes and Modal VM Sandboxes run Docker?
Yes. Each Docker sandbox has its own Docker Engine, and Modal's VM runtime runs Docker, systemd and FUSE once you start dockerd. Modal also offers /dev/kvm on Team and Enterprise on request, which Docker does not document and bochka has on every plan.
How long can a sandbox run on each?
Docker defaults to 1 hour and allows up to 24 hours from creation; resuming a stopped one starts a new timer. Modal defaults to 5 minutes and stops at 24 hours, after which you continue from a filesystem snapshot. bochka has no session cap on paid plans.
How many sandboxes can I run at once?
Docker allows 10 concurrent and 50 stored sandboxes per account by default. Modal runs 100 containers on Starter and 5,000 on Team. bochka runs 100 on the $20 plan and up to 2,000 on higher plans.
Does either keep memory when a sandbox stops?
Docker does: a stopped sandbox keeps its memory and files, and you can fork a running one with its memory. Modal has no paused state, and its memory snapshots are alpha and end the sandbox. bochka keeps the disk on stop, and resume boots the machine again.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs Docker Cloud Sandboxes
- bochka vs Modal VM Sandboxes
- 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