Dev Container CLI

XDA’s argument this month is that the smartest VS Code upgrade is not another autocomplete extension, it is dev containers. The reasoning holds up. A dev container is a folder-scoped Linux environment defined by a devcontainer.json file, with your language runtime, system packages, and editor extensions all pinned. Open the folder in a supported editor and the tooling reconciles the container from that file, so a fresh clone reaches a working state without a page of manual setup. We tested eight apps for running dev containers on Windows, macOS, and Linux, picked for how well they handle the actual devcontainer.json spec and for what happens when a teammate on a different OS runs the same folder.

What to look for in a dev container app

Not every container tool understands the dev containers spec, and the ones that do sit on very different runtimes.

Quick comparison

App Best for Platforms Free plan Starting price Standout feature
Docker Desktop Default runtime, GUI users Windows, macOS, Linux Free for personal / small business Business tier per seat/month Widest tooling coverage
Podman Desktop Rootless Docker replacement Windows, macOS, Linux Free, open source Free Runs rootless by default
DevPod Same container on laptop, K8s, or cloud Windows, macOS, Linux Free, open source Loft Pro for teams Provider model for cloud dev
OrbStack Fastest Docker on macOS macOS Free for personal Paid tier for commercial VirtioFS, low RAM footprint
Rancher Desktop Docker plus a real local K8s Windows, macOS, Linux Free, open source Free k3s built in
Colima Lightweight Docker on macOS/Linux macOS, Linux Free, open source Free No GUI, low overhead
Distrobox Containerized Linux desktops Linux Free, open source Free Runs GUI apps from containers
GitHub Codespaces Cloud-hosted dev containers Web, VS Code, JetBrains Free monthly hours Per-hour after quota Same devcontainer.json, in the cloud

The apps

1. Docker Desktop — Best for the default runtime with the widest ecosystem

Docker Desktop is still what the dev containers spec assumes on day one. Install it, install the Dev Containers extension in VS Code, and “Reopen in Container” works with zero configuration. It bundles the Docker Engine, Kubernetes, and the compose plugin, and it manages the Linux VM on Windows and macOS so you never touch WSL or a Lima instance directly.

Where it falls short: The subscription terms bite for larger organizations. Anything over 250 employees or 10 million USD in revenue needs a Business seat. Startup and personal use are still free, but read the license before you deploy it to a fleet.

Pricing:

Platforms: Windows, macOS, Linux

Download: docker.com/products/docker-desktop

Bottom line: If you are picking one tool and moving on, install Docker Desktop and stop reading. The rest of the list is for when the license or the RAM footprint makes it a bad fit.

2. Podman Desktop — Best for a rootless, license-free replacement

Podman Desktop is the Red Hat sponsored GUI over Podman, and it now handles devcontainer.json through the VS Code Dev Containers extension by exposing a Docker-compatible socket. You get an OCI runtime that runs rootless by default, no daemon in the background, and a permissive Apache 2.0 license.

Where it falls short: Compose parity is close but not identical to Docker’s. Volume mount semantics on macOS still lag Docker Desktop for very large workspaces. Bug reports on dev containers with heavy feature layers still surface occasionally.

Pricing:

Platforms: Windows, macOS, Linux

Download: podman-desktop.io

Bottom line: Podman Desktop is the direct swap when Docker Desktop’s license is a problem, and it is the right pick when your team already runs Podman on servers.

3. DevPod — Best for the same container across laptop, K8s, and cloud

DevPod by Loft Labs treats providers as pluggable. The same devcontainer.json you open on Docker Desktop can spin up on a Kubernetes cluster, an SSH host, a fresh EC2 instance, or a Loft Vcluster, with the workspace synced in. It reuses the Microsoft devcontainers/cli internally so spec compliance is by construction, not translation.

Where it falls short: The provider ecosystem is uneven. The first-party AWS, GCP, Azure, and K8s providers are solid. Community providers vary. The desktop UI is functional rather than polished.

Pricing:

Platforms: Windows, macOS, Linux, CLI

Download: devpod.sh

Bottom line: DevPod is the pick when “dev container on my laptop” needs to become “dev container in the cluster” without rewriting the file.

4. OrbStack — Best for the fastest Docker on macOS

OrbStack is a from-scratch Docker replacement for Apple Silicon Macs. Cold start is a couple of seconds, RAM idle sits well below Docker Desktop, and VirtioFS is the default for bind mounts, which is the single largest performance win for dev containers that mount large monorepos. It also runs full Linux VMs alongside containers so you can drop into a shell without a container wrapper.

Where it falls short: macOS only. Commercial use is paid. The lack of Windows and Linux builds means it can never be your team’s only dev container tool.

Pricing:

Platforms: macOS

Download: orbstack.dev

Bottom line: OrbStack is the right first install on a personal Mac. On a work Mac, factor the commercial tier into the decision.

5. Rancher Desktop — Best for a real local Kubernetes plus dev containers

Rancher Desktop by SUSE ships Docker or containerd as the runtime and k3s as a real single-node Kubernetes cluster. That combination is unusual. Dev container extensions treat it as a Docker-compatible socket, and once your workflow needs a local K8s to test manifests, Rancher Desktop covers both surfaces from one install.

Where it falls short: More moving parts than a plain container runtime. First launch is slow while the Linux VM boots. Documentation on switching between the Docker and containerd runtimes is thin.

Pricing:

Platforms: Windows, macOS, Linux

Download: rancherdesktop.io

Bottom line: Rancher Desktop is the pick when your workday alternates between “reopen in container” and kubectl apply.

6. Colima — Best for a lightweight, GUI-free Docker on macOS or Linux

Colima is a thin CLI over Lima that boots a Linux VM with Docker or containerd inside. No tray icon, no update prompts, no license. You run colima start, point the Docker CLI at its socket, and the Dev Containers extension in VS Code opens folders in containers without noticing the difference from Docker Desktop.

Where it falls short: No GUI. Kubernetes support exists but is best-effort. Volume sharing performance is workable, not the fastest on the list.

Pricing:

Platforms: macOS, Linux

Download: github.com/abiosoft/colima

Bottom line: Colima is the terminal-first replacement for Docker Desktop on Macs. Pick it if you already live in the shell.

7. Distrobox — Best for containerized Linux desktops

Distrobox wraps Podman or Docker to run full Linux distributions as tightly integrated containers. It is not a strict dev containers spec runner, but it hits the same problem from another angle: a per-project Debian, Fedora, or Arch environment on any Linux host, with access to your home directory and GPU. Pair it with the devcontainers/cli and you have both spec-driven and freeform per-project environments.

Where it falls short: Linux only. Not a drop-in for devcontainer.json on its own, so it complements rather than replaces the other picks.

Pricing:

Platforms: Linux

Download: distrobox.it

Bottom line: Distrobox is the answer on immutable Linux distros like Silverblue and Bazzite, where system packages are locked and per-project containers become the default workflow.

8. GitHub Codespaces — Best for the same dev container in the cloud

GitHub Codespaces takes your repo’s devcontainer.json and starts a hosted VM that opens in the browser, VS Code, or JetBrains Gateway. The switch from a local dev container to a Codespace is a one-click move because the file is already there. The advantage is that a 16 GB laptop can drive a 32 GB Codespace, and a brand new hire is coding in under two minutes.

Where it falls short: Egress and compute cost after the free hours run out. Latency for keystrokes is fine on a solid connection and painful on a hotel Wi-Fi. Some networks block the tunneling protocol.

Pricing:

Platforms: Web, VS Code, JetBrains Gateway

Download: github.com/features/codespaces

Bottom line: Codespaces is the fallback when the laptop is not the machine to run the container on. Same file, different host.

How to pick the right one

FAQ

What is a dev container? A folder-scoped development environment defined by a .devcontainer/devcontainer.json file that pins the runtime, system packages, and editor extensions. Open the folder in a supported editor and the tool reconciles the container from that file.

Do I need Docker Desktop to use dev containers? No. The dev containers CLI works with any Docker-compatible socket. Podman, Colima, Rancher Desktop, and OrbStack all expose one.

Can I use dev containers without VS Code? Yes. The devcontainers/cli reads the same file and opens a shell in the container. JetBrains Gateway supports the spec too.

Is there a license cost for dev containers themselves? No. The spec and the reference CLI are open source under the MIT license. Cost comes from the runtime and any hosted execution.

How does a dev container compare to a virtual environment? A venv or a node_modules folder pins the language ecosystem. A dev container pins the operating system too, which is what fixes the it-works-on-my-machine bug across teammates.

Can dev containers use a GPU? Yes, on Linux hosts and on Windows with WSL2 and CUDA passthrough. Add the appropriate features and hostRequirements block to the devcontainer.json and expose the GPU device to the container.