Skip to content
Latchkey

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.

runner
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

  1. Set containerMode.type to dind in the scale set values.
  2. Reinstall the scale set so the dind sidecar is added.
  3. Confirm the runner pod has both runner and dind containers.
values.yaml
containerMode:
  type: "dind"

Check the dind sidecar status

Inspect the runner pod to confirm the dind container is Running before docker steps execute.

Terminal
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.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →