Dev Containers
Dev containers allow developers to define their development environment
as code using the Dev Container specification.
Configuration lives in a devcontainer.json file alongside source code,
enabling consistent, reproducible environments.
By adopting dev containers, organizations can:
- Standardize environments: Eliminate "works on my machine" issues while still allowing developers to customize their tools within approved boundaries.
- Scale efficiently: Let developers maintain their own environment definitions, reducing the burden on platform teams.
- Improve security: Use hardened base images and controlled package registries to enforce security policies while enabling developer self-service.
Coder supports two approaches for running dev containers. Choose based on your infrastructure and workflow requirements.
Dev Containers Integration
The Dev Containers Integration uses the standard @devcontainers/cli and Docker
to run containers inside your workspace. This is the recommended approach for
most use cases.
Best for:
- Workspaces with Docker available (Docker-in-Docker or mounted socket)
- Dev container management in the Coder dashboard (discovery, status, rebuild)
- Multiple dev containers per workspace
Configure Dev Containers Integration
For user documentation, see the Dev Containers user guide.
Envbuilder
Envbuilder transforms the workspace image itself from a devcontainer.json,
rather than running containers inside the workspace. It does not require
a Docker daemon.
Best for:
- Environments where Docker is unavailable or restricted
- Infrastructure-level control over image builds, caching, and security scanning
- Kubernetes-native deployments without privileged containers


