Docker Alternatives for Local Development: Podman vs OrbStack vs Colima vs nerdctl
We tested four Docker alternatives for local development — Podman, OrbStack, Colima, and nerdctl — comparing performance, Docker compatibility, resource usage, and ease of use.
#Ratings
Why Developers Are Leaving Docker Desktop
Docker Desktop changed its licensing in 2022, requiring paid subscriptions for companies with more than 250 employees or $10 million in revenue. That decision launched a migration that's still playing out in 2026. But licensing isn't the only reason developers are switching. Docker Desktop's resource consumption — the always-running VM, the 2+ GB of RAM at idle, the CPU spikes during image builds — has frustrated developers for years. And on macOS, the file system performance of Docker's VM-based volume mounts has been a persistent pain point.
The alternatives have matured dramatically. OrbStack has emerged as the premium Docker replacement on macOS. Podman offers a fundamentally different architecture. Colima provides a free, lightweight VM wrapper. And nerdctl brings Docker-compatible commands to containerd. We tested all four for five weeks on real development projects.
The Contenders
| Tool | Architecture | Platform | License | Price |
|---|---|---|---|---|
| OrbStack | Optimized VM (Apple VZ) | macOS only | Proprietary | Free personal / $8/mo team |
| Podman | Daemonless containers | macOS, Linux, Windows | Apache 2.0 | Free |
| Colima | Lima VM + Docker/containerd | macOS, Linux | MIT | Free |
| nerdctl | containerd CLI | Linux (native), macOS (via VM) | Apache 2.0 | Free |
Installation and First Run
OrbStack installs via a 50 MB download from orbstack.dev or brew install --cask orbstack. First launch takes about 10 seconds. There's no VM initialization step visible to the user — OrbStack handles everything transparently. You run docker ps and it works. The onboarding experience is the best of any container tool we've tested.
Podman installs via brew install podman on macOS or your package manager on Linux. On macOS, you need to initialize the VM: podman machine init && podman machine start. This downloads a Fedora CoreOS image and takes 60-90 seconds on first run. On Linux, there's no VM — Podman runs natively. You can optionally install Podman Desktop for a GUI.
Colima installs via brew install colima docker. Starting is straightforward: colima start. First run downloads a Lima VM image and takes about 2 minutes. Subsequent starts take 10-15 seconds. Colima creates a Docker socket that the standard Docker CLI connects to automatically.
nerdctl on Linux installs via a single binary download or package manager. On macOS, nerdctl typically runs inside a Lima or Colima VM. It's not a standalone macOS solution — it's a CLI that talks to containerd. For this review, we tested nerdctl on Linux natively and on macOS via Colima's containerd backend.
Docker Compatibility: The Practical Test
We tested each tool against a real-world development stack: a docker-compose.yml with PostgreSQL, Redis, a Node.js API, a Python worker, a React frontend, and nginx. We also tested VS Code Dev Containers, multi-stage builds, volume mounts, networking, and the Docker socket API.
| Feature | OrbStack | Podman | Colima | nerdctl |
|---|---|---|---|---|
| docker CLI commands | ✅ Drop-in | ✅ Alias works | ✅ Via Docker CLI | ⚠️ nerdctl (mostly compatible) |
| Docker Compose v2 | ✅ Full | ⚠️ podman-compose (gaps) | ✅ Full | ⚠️ nerdctl compose (gaps) |
| Dockerfile builds | ✅ BuildKit | ✅ Buildah | ✅ BuildKit | ✅ BuildKit |
| Docker socket (/var/run/docker.sock) | ✅ | ⚠️ Emulated | ✅ | ❌ Different socket |
| VS Code Dev Containers | ✅ Works perfectly | ⚠️ Needs config | ✅ Works | ❌ Not supported |
| Docker Extensions | ❌ | ❌ | ❌ | ❌ |
| Testcontainers | ✅ | ⚠️ Needs DOCKER_HOST | ✅ | ⚠️ Needs config |
OrbStack provides the highest Docker compatibility of any alternative. It implements the Docker API so faithfully that we could not find a single workflow that broke when switching from Docker Desktop. Every Dockerfile, every Compose file, every tool that talks to the Docker socket worked without modification. This is OrbStack's core value proposition and it delivers.
Podman achieves 90-95% compatibility. The podman command accepts the same flags as docker, and aliasing works for most workflows. The gaps are in Docker Compose (podman-compose handles basic cases but struggles with advanced features like profiles, service dependencies with health checks, and some networking modes) and tools that directly access the Docker socket. Podman's socket emulation works but occasionally breaks tools that make assumptions about the Docker API version.
Colima is essentially Docker running in a different VM. Because it uses the actual Docker daemon (dockerd) inside a Lima VM, compatibility is near-perfect. The Docker CLI, Docker Compose, and Docker socket all work as expected. The only differences from Docker Desktop are in VM management and resource allocation.
nerdctl is the least compatible option. While it aims for Docker CLI compatibility, differences in image management, networking, and compose support mean you'll hit friction regularly. nerdctl is best suited for developers who are comfortable with containerd directly and don't need exact Docker compatibility.
Performance: Where Alternatives Shine
This is where the Docker alternatives justify their existence. We benchmarked container startup time, image build speed, volume mount performance, and resource consumption.
Container Startup Time
| Scenario | Docker Desktop | OrbStack | Podman | Colima |
|---|---|---|---|---|
| Single container (nginx) | 1.2s | 0.4s | 0.8s | 1.1s |
| Compose stack (6 services) | 8.4s | 3.2s | 6.1s | 7.8s |
| Cold start (from VM off) | 12s | 2s | 8s | 14s |
OrbStack's startup performance is extraordinary. A cold start from VM off to running containers in 2 seconds is roughly 6x faster than Docker Desktop. The secret is OrbStack's deeply optimized VM layer, which uses Apple's Virtualization framework with custom optimizations for container workloads. The VM is so fast to start that you can configure OrbStack to stop the VM when idle and restart it on demand with no perceptible delay.
File System Performance (Volume Mounts)
This is the benchmark that matters most for local development. When you mount your source code into a container with -v $(pwd):/app, the file system performance determines how fast your hot-reload works, how fast your tests run, and how responsive your development experience feels.
| Benchmark | Docker Desktop | OrbStack | Podman | Colima |
|---|---|---|---|---|
| Read 10K files | 3.8s | 0.9s | 2.1s | 3.2s |
| Write 10K files | 5.2s | 1.1s | 3.4s | 4.8s |
| npm install (node_modules) | 42s | 14s | 28s | 38s |
| Next.js hot reload | ~800ms | ~150ms | ~400ms | ~700ms |
OrbStack's file system performance is 3-4x faster than Docker Desktop. The difference is immediately noticeable in development workflows. A Next.js hot reload that takes 800ms with Docker Desktop takes 150ms with OrbStack. An npm install that takes 42 seconds takes 14 seconds. Over a full day of development, this adds up to minutes of saved waiting time.
The technical reason: OrbStack uses VirtioFS with custom patches that reduce the overhead of cross-VM file operations. Docker Desktop also uses VirtioFS (replacing the older gRPC FUSE and osxfs), but OrbStack's implementation is more aggressively optimized.
Podman's file system performance is solid — better than Docker Desktop but behind OrbStack. Colima, using the same Lima VM layer, performs similarly to Docker Desktop.
Resource Consumption
| Metric | Docker Desktop | OrbStack | Podman | Colima |
|---|---|---|---|---|
| RAM (idle) | 1.8 GB | 0.4 GB | 0.8 GB | 1.2 GB |
| RAM (6 containers running) | 2.8 GB | 1.1 GB | 1.6 GB | 2.4 GB |
| Disk (base install) | 2.1 GB | 0.6 GB | 1.4 GB | 1.8 GB |
| CPU idle (%) | 2-5% | 0.1-0.5% | 0.5-1% | 1-3% |
| Battery impact | Noticeable | Minimal | Low | Noticeable |
OrbStack uses 4.5x less RAM at idle than Docker Desktop. The difference in CPU usage is even more dramatic — OrbStack's VM essentially sleeps when no containers are running, consuming near-zero CPU. Docker Desktop's daemon and associated processes maintain a steady 2-5% CPU usage even with no containers running, which impacts battery life on laptops.
Podman's daemonless architecture shows its advantage here: when no containers are running, the Podman VM on macOS uses minimal resources. On Linux, where Podman runs natively without a VM, the overhead is essentially zero.
OrbStack: The Premium Docker Replacement
OrbStack has become the gold standard for container development on macOS. Beyond containers, OrbStack runs lightweight Linux machines — full Ubuntu, Fedora, or Arch VMs that start in under a second and integrate with your macOS file system. You can run orb ubuntu and get a Linux shell instantly, with your home directory automatically mounted.
Key OrbStack features beyond basic Docker compatibility:
- Automatic domain routing — Each container gets a
.orb.localdomain. A container namedapiis accessible atapi.orb.localfrom your Mac. No port mapping needed for development. - Kubernetes — Built-in single-node Kubernetes cluster, similar to Docker Desktop but faster to start.
- Linux machines — Run full Linux distributions alongside containers. Useful for testing Linux-specific tools or running development environments that require Linux.
- Migration tool — OrbStack can import your Docker Desktop images, volumes, and containers. Switching takes minutes.
- Network integration — Containers can access each other by name, and your Mac can access containers without explicit port mapping. This simplifies docker-compose networking significantly.
The main downsides: OrbStack is macOS-only and proprietary. The personal tier is free, but team use requires $8/user/month. If you need cross-platform support or prefer open source, OrbStack isn't an option.
Podman: The Architecture Argument
Podman's value proposition goes beyond "free Docker alternative." Its daemonless, rootless architecture is fundamentally more secure than Docker's daemon-based model.
In Docker's model, all container operations go through a central daemon running as root. A vulnerability in the daemon can compromise the entire system. In Podman's model, each container is a direct child process of the command that started it, running as your user. There is no privileged daemon. This means:
- Container escapes are limited to your user's permissions, not root
- No persistent daemon process consuming resources when idle
- Systemd integration allows containers to run as system services
- Multiple users can run containers independently without interfering
Podman's compatibility with Docker has improved steadily. The podman CLI now handles 95%+ of Docker commands identically. Podman Desktop provides a GUI that manages both containers and pods (groups of containers that share a network namespace, similar to Kubernetes pods).
For teams on Linux, Podman is the clear recommendation. No VM, no overhead, rootless security, and perfect compatibility with CI pipelines that use podman or buildah. On macOS, Podman is a solid choice but requires accepting the VM overhead and occasional Docker compatibility gaps.
Colima: The Free and Simple Option
Colima is a Lima wrapper that provides Docker (or containerd) in a lightweight VM. Its appeal is simplicity: colima start gives you a working Docker environment. colima stop shuts it down. There's no GUI, no account, no configuration wizard.
# Start with custom resources
colima start --cpu 4 --memory 8 --disk 60
# Use Docker normally
docker compose up -d
# Stop when done
colima stopColima supports multiple profiles, so you can have different VM configurations for different projects:
# Heavy project with lots of containers
colima start --profile heavy --cpu 6 --memory 12
# Light project
colima start --profile light --cpu 2 --memory 4Colima's performance is similar to Docker Desktop because it uses the same underlying components (dockerd + containerd in a Linux VM). The advantage is resource control — you can stop the VM when not in use and configure resources per-project. The disadvantage is that Colima doesn't have OrbStack's optimized VM layer, so file system performance and startup time are mediocre.
Colima is the best choice for developers who want a free, open-source, no-nonsense Docker environment without the overhead of Docker Desktop's GUI and background services.
nerdctl: For the containerd Native
nerdctl is a Docker-compatible CLI for containerd, the container runtime that powers Kubernetes. It's not a Docker replacement in the traditional sense — it's an alternative interface to a different (but compatible) runtime.
nerdctl's strengths are in areas where it leverages containerd's capabilities:
- Image encryption — nerdctl supports encrypted container images natively
- Lazy pulling — With eStargz or SOCI indexes, nerdctl can start containers before the full image is downloaded
- Namespace isolation — containerd namespaces provide stronger isolation between different users or projects
- Kubernetes alignment — Running the same runtime locally that you use in production reduces "works on my machine" issues
The reality is that nerdctl is best suited for platform engineers and DevOps professionals who work directly with containerd. For most application developers, the compatibility gaps with Docker Compose and the lack of a polished macOS experience make nerdctl impractical as a daily driver.
Migration Guide: Switching from Docker Desktop
Regardless of which alternative you choose, the migration path follows the same pattern:
- Export important volumes — Back up any Docker volumes that contain data you need to preserve
- Note your compose files — Identify all docker-compose.yml files in your projects
- Install the alternative — Follow the installation steps above
- Test your workflows — Run your most common docker commands and compose stacks
- Update CI/CD — If your CI uses Docker, verify the alternative works in that context (or keep Docker for CI)
- Uninstall Docker Desktop — Only after confirming everything works
OrbStack makes this easiest with its built-in migration tool. For Podman and Colima, the process is manual but straightforward — your Dockerfiles and compose files don't change, only the runtime underneath them.
Who Should Use What
Choose OrbStack if:
- You develop on macOS and want the best performance
- Docker compatibility is non-negotiable
- You value polished developer experience
- Battery life and resource usage matter
- You're willing to use a proprietary tool
Choose Podman if:
- Security architecture matters (rootless, daemonless)
- You work primarily on Linux
- Cross-platform support is needed
- You prefer open-source tools
- Your team is large enough that Docker licensing is expensive
Choose Colima if:
- You want free, open-source, and simple
- Full Docker compatibility is needed (it runs actual dockerd)
- You don't need the best performance, just functional containers
- You prefer CLI-only tools
- You want per-project VM resource control
Choose nerdctl if:
- You're a platform engineer working with containerd
- You want runtime parity with your Kubernetes clusters
- Advanced containerd features (encryption, lazy pulling) matter
- You're comfortable with occasional Docker compatibility gaps
The Verdict
OrbStack is the best Docker alternative for local development on macOS in 2026. Its performance advantages are substantial — 3-4x faster file system operations, 4.5x less RAM, and near-instant startup. The Docker compatibility is flawless. If you develop on a Mac and your only hesitation is using a proprietary tool, get over it. OrbStack is that good.
Podman is the best choice for Linux developers and security-conscious teams. Its rootless architecture is genuinely more secure, and on Linux it runs with zero overhead. The Docker compatibility gaps are narrowing with every release, and for most workflows, alias docker=podman is all you need.
Colima is the best free option for developers who want Docker compatibility without Docker Desktop's overhead. It won't wow you with performance, but it works reliably and costs nothing.
nerdctl is a specialized tool for specialized users. If you know you need it, you probably already know why.
The Docker Desktop era is ending. Not because Docker Desktop is bad — it's actually improved significantly — but because the alternatives are now better for most use cases. The container runtime is a commodity. What matters is the developer experience built on top of it, and that's where OrbStack, Podman, and Colima have pulled ahead.
Get OrbStack · Install Podman · Install Colima · Get nerdctl
Winner
OrbStack (macOS) / Podman (Linux & cross-platform) / Colima (free & lightweight)
Independent testing. No affiliate bias.
Get dev tool reviews in your inbox
Weekly updates on the best developer tools. No spam.
Build your own dev tool review site.
Get our complete templates and systematize your strategy with the SEO Content OS.
Get the SEO Content OS for $34 →