Prerequisites
- Docker installed and running (Docker Desktop on macOS/Windows, or Docker Engine on Linux)
- Agent Canvas installed locally (if connecting from another instance) — see Setup
Run the Official Image
Mount a persistence directory for settings, secrets, and conversation history, and a projects directory for workspace access.- macOS / Linux
- Windows (PowerShell)
http://localhost:8000/canvas. The backend base URL remains http://localhost:8000, and the agent can access any project under the mounted /projects path.
Environment Variables
Configuration is passed via-e flags on docker run:
Let the Agent Use Docker
By default the agent cannot run containers:docker is installed in the image, but the
daemon cannot start inside an unprivileged container. If the agent tries, it fails with
error creating default "bridge" network: operation not permitted.
That matters for tasks where a container is part of the workflow — building a Dockerfile
and running it to confirm the change works, bringing up a docker compose stack to
reproduce a bug, or using a toolchain that is only published as an image. Without a
daemon the agent can edit those files but cannot verify them.
To enable it, start the container with --privileged:
There is no safer middle ground. The Docker daemon needs kernel capabilities that are
granted by the host when the container starts, so they cannot be acquired later — and
rootless Docker does not avoid this: the daemon starts, but containers it creates fail
to launch (
error mounting "proc" to rootfs: operation not permitted).OpenHands Enterprise solves this differently, running each sandbox under a hardened
runtime that provides kernel-level isolation so nested containers run unprivileged. See
Running Docker in the Agent Sandbox.Connect from the Frontend
Start the frontend separately and point it at the container:- Click the backend switcher → Manage Backends → Add Backend.
- Fill in:
- Name — e.g.
docker-backend - Host / Base URL —
http://localhost:8000 - API Key — the
LOCAL_BACKEND_API_KEYvalue (check container logs if auto-generated)
- Name — e.g.
- Save and select it as the active backend.
Related Guides
- Connect and Manage Backends
- Local Backend
- VM / Self-Hosted Installation
- Kubernetes (Helm)
- Running Docker in the Agent Sandbox — how Enterprise does this without
--privileged

