Skip to content
Latchkey

Docker "storage driver not supported" / Slow vfs Fallback in CI

The Docker daemon could not use overlay2 and either failed to start or silently fell back to the vfs driver. vfs copies entire layers instead of sharing them, so builds become extremely slow and disk usage balloons.

What this error means

dockerd fails with error initializing graphdriver: driver not supported, or it starts on vfs and every build/pull is dramatically slower and fills the disk. docker info shows Storage Driver: vfs.

dockerd / docker info
Error starting daemon: error initializing graphdriver: driver not supported
# or it falls back silently:
docker info | grep 'Storage Driver'  ->  Storage Driver: vfs

Common causes

overlay2 unsupported on the backing filesystem

overlay2 needs a compatible backing filesystem (e.g. ext4/xfs with the right options). On an unsupported FS - or a stacked overlay inside a container - the daemon cannot use it.

Running Docker-in-Docker without overlay support

Nested Docker may not be able to mount overlay2 inside the container, so the daemon falls back to the slow vfs driver.

A misconfigured storage-driver setting

An explicit storage-driver in daemon.json that the environment cannot satisfy forces the failure or the fallback.

How to fix it

Run the daemon on a filesystem that supports overlay2

Back /var/lib/docker with a supported filesystem and let overlay2 be selected.

daemon.json / Terminal
# /etc/docker/daemon.json
{ "storage-driver": "overlay2" }
sudo systemctl restart docker
docker info | grep 'Storage Driver'   # expect overlay2

Avoid nested overlay; use the host daemon

  1. Prefer the runner’s host Docker daemon over Docker-in-Docker so overlay2 works.
  2. For dind, use a volume for /var/lib/docker on a supported filesystem.
  3. Never accept a silent vfs fallback for image-heavy pipelines - it is too slow and disk-hungry.

How to prevent it

  • Use runner images where overlay2 is the active storage driver.
  • Check docker info for the storage driver in CI and fail on vfs.
  • Back the Docker graph root with an overlay2-capable filesystem.

Related guides

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