"No space left on device" - don't set both 'graph' JSON parameter & 'Disk image location' setting

Don’t set both graph parameter in JSON configuration file & Disk image location in Settings

Windows 10, 1809, 17763.1158 - Docker 2.3.0.2 (45183) - Linux containers

I had the “No space left on device” error for a reason quite different from what I read on the internet and wanted to share the solution to my specific problem.

I wanted to change the location of my docker images, and ended up setting both:

  • "graph": "/D/path/to/docker/images in the engine’s JSON configuration file (Settings → Docker Engine)
  • D:\path\to\docker\DockerDesktop as Disk image location (Settings → Resources)

Then, when trying to pull images through docker-compose, I kept having errors:
ERROR: for image_name write /D/path/to/docker/images/tmp/GetImageBlob<uid>: no space left on device.

After removing the "graph" parameter (keeping only the Disk image location), I could pull images normally.

I was confused by the fact that on Windows, when using Linux containers, images are not actually on the Windows file-system but in the file-system of the *.vhdx Hard Disk Image File of the Mobby Virtual Machine. But apparently setting both parameters provokes a weird behavior in Docker.