ARC "Cannot connect to the Docker daemon" in CI
A workflow step ran docker but the runner could not reach the Docker daemon. In ARC dind mode the daemon runs in a sidecar; this error means the sidecar is not ready, or containerMode is not dind.
What this error means
A docker build or run step fails with "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?" while other steps succeed.
Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running?Common causes
containerMode is not set to dind
Without dind mode there is no Docker daemon in the runner pod, so any docker command fails to connect.
The dind sidecar has not become ready
The step ran before the dind sidecar finished starting, so the socket is not yet available.
How to fix it
Enable dind containerMode
- Set containerMode.type to dind in the scale set values.
- Reinstall the scale set so the dind sidecar is added.
- Confirm the runner pod has both runner and dind containers.
containerMode:
type: "dind"Check the dind sidecar status
Inspect the runner pod to confirm the dind container is Running before docker steps execute.
kubectl get pod -n arc-runners <runner-pod> \
-o jsonpath='{.status.containerStatuses[*].name}'How to prevent it
- Use dind containerMode when workflows call docker.
- Keep the dind sidecar image compatible with the runner image.
- Prefer buildx or kaniko where a full daemon is not needed.