Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When docker pull stays on Extracting, Docker has usually finished downloading at least part of a layer and is unpacking or registering it in the local image store. Repeatedly cancelling the client rarely identifies the fault. Check the daemon, Docker’s data filesystem, storage mode, and network path in that order.

What “Extracting” means

A Docker image is made of separate layers. The daemon downloads several layers concurrently (three at a time by default), then writes and extracts them locally. An apparently stuck extraction therefore points to work on the host: insufficient capacity, an unpack or mount error, a storage-driver limitation, permissions, or an interrupted registry connection.

Capture the exact image name, layer status, elapsed time, and any error printed by the client before changing configuration. The daemon may report the real cause even when the client only shows a progress line.

Run these checks first

  1. Confirm daemon health and record storage details. Run docker info. Note the Docker root directory, storage driver, security options, and whether the containerd image store is enabled. This command is Docker’s operating-system-independent health check.
  2. Watch daemon logs during another pull attempt. On a Linux host, run journalctl -xu docker.service. On Docker Desktop for macOS, follow ~/Library/Containers/com.docker.docker/Data/log/vm/init.log. On Docker Desktop using WSL2 on Windows, follow %LOCALAPPDATA%Dockerlogvminit.log. Look for messages containing no space left, permission denied, mount failures, layer-registration errors, unpack errors, or network timeouts.
  3. Check bytes and inodes on Docker’s data filesystem. On Linux, inspect the filesystem containing the directory shown as Docker’s root directory (often /var/lib/docker) with df -h and df -i. Image layers, metadata, and container log files all consume this storage. A filesystem can have free bytes but no free inodes, which also prevents extraction.
  4. Identify the storage arrangement. Record whether the host is rootful or rootless, uses overlay2 or another graph driver, or uses Docker’s containerd image store. These modes have different paths, permissions, and space requirements.
  5. Check registry and proxy reachability. Verify that the Docker daemon—not only your interactive shell—has the required proxy settings and can maintain a connection to the registry. A lost daemon-to-client connection or a manually terminated command ends the pull.
  6. Validate configuration before editing it. If logs point to daemon.json, check that it is valid JSON and that the daemon can start with it. Back up or export images before changing a storage driver or migrating image-store modes.

Diagnose by the evidence in the logs

“No space left on device” or inode exhaustion

Free capacity in the filesystem that actually holds Docker’s data, not merely in your home directory. Extraction may need temporary working room in addition to the final unpacked layer. With the containerd image store, compressed layers can be retained while extracted content is created, so the same image can require materially more space than it would with legacy storage drivers. If df -h is acceptable but df -i is full, remove or relocate inode-heavy data through your normal Docker administration process rather than deleting storage directories by hand.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Layer registration, mount, permission, or unpack errors

These messages usually indicate a daemon, filesystem, or storage-driver problem rather than a slow download. Compare the error with the driver and root mode reported by docker info. Do not edit files inside /var/lib/docker or an overlay2 directory manually; those directories contain Docker-managed metadata and layer data.

Overlay2 or filesystem incompatibility

overlay2 depends on compatible kernel and filesystem features. If the daemon log reports an unsupported option, mount failure, or filesystem limitation, fix that underlying compatibility issue or follow Docker’s documented migration procedure. Changing drivers in place can make existing images unavailable unless they are backed up or exported first.

Rootless storage or permission failures

Rootless Docker has a separate storage location and user-level permission constraints. A rootless daemon can fail extraction even when the system-wide Docker directory has space. Use the rootless daemon’s own docker info output and logs to identify its data root, then check capacity, ownership, and limits for that user.

Proxy, registry, or connection interruptions

Inspect daemon proxy configuration and test registry access from the environment where the daemon runs. A shell proxy setting does not automatically configure the daemon. Docker terminates a pull when the connection between the daemon and the initiating client is cut or lost, so a terminal disconnect or forcibly stopped command can leave the operation incomplete.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How environments differ

Environment Where to inspect logs Storage checks Additional concern
Linux, rootful journalctl -xu docker.service Filesystem containing Docker’s root directory, commonly /var/lib/docker; check bytes and inodes Verify kernel/filesystem support for the reported driver, especially overlay2
Linux, rootless User-level daemon logs and the output of docker info Check the rootless data root and the owning user’s quota, bytes, inodes, and permissions Rootless storage and permission limits differ from rootful Docker
Docker Desktop for macOS ~/Library/Containers/com.docker.docker/Data/log/vm/init.log Check the Desktop VM’s available disk allocation and the image-store mode shown by docker info The daemon runs inside Docker Desktop’s VM, not directly on the macOS filesystem
Docker Desktop with WSL2 on Windows %LOCALAPPDATA%Dockerlogvminit.log Check the VM/data-disk capacity and the storage mode reported by docker info WSL2 and Desktop VM limits can differ from free space on the Windows system drive
Containerd image store Platform-specific daemon or Desktop VM logs Allow for compressed and extracted layer data occupying space at the same time Docker documents higher disk use than legacy storage drivers for the same images

Safe recovery sequence

  1. Save the output of docker info, the pull command, and the relevant daemon-log lines.
  2. Correct the specific condition shown by the logs: reclaim capacity through supported Docker administration, fix ownership or filesystem compatibility, or correct the daemon’s proxy configuration.
  3. Recheck bytes and inodes on the identified data filesystem.
  4. Retry the pull while watching the same logs. If it fails at the same layer, compare the new error with the original rather than assuming the image itself is corrupt.
  5. Only after exporting or backing up images, consider a documented storage-driver or image-store migration. Treat a driver change as an infrastructure change, not as routine cleanup.

What not to do

  • Do not delete /var/lib/docker, an overlay2 subdirectory, or containerd metadata manually.
  • Do not switch storage drivers just because extraction is slow; first establish an incompatibility in docker info or the daemon log.
  • Do not assume free space on another disk is usable. Docker can write only where its configured data root and VM disk allow.
  • Do not treat a client-side proxy setting as proof that the daemon can reach the registry.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When the image still will not extract

If capacity, inodes, permissions, storage compatibility, and connectivity all check out, preserve the logs and the exact failing layer or error text. That evidence distinguishes an image-specific unpack problem from a host-wide daemon issue and is what an administrator or Docker support channel needs for the next step. There is no single universal fix for every extraction stall.

Best Value
Docker Container Linux Devops Programming Coding T-Shirt
  • Docker, Docker Swarm, Docker Compose, Programmer, Developer, Coding, Programming, Software Engineer, Code, DevOps, Deploy, Deployment, Kubernetes, Salt, Puppet, Chef, Terraform, Container, AWS, Azure, Cloud, Geek, Funny, Computer, Software, Tech, IT
  • Integration, Scrum, Compile, Compilation, Science, Bug, Debug, Python, Linux, Java, Javascript, Scala, Dotnet, Kotlin
  • Lightweight, Classic fit, Double-needle sleeve and bottom hem

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.