Docker Swarm storage incident
Portainer Swarm Image Pull No Space Left On Device
When a Portainer stack deploy reports success but Swarm tasks move to Rejected, the Docker API may have accepted the service spec before the selected node failed the image pull. Capture the task state, Docker root, blocks, inodes, and image/cache pressure before pruning or redeploying.
Get the exact cleanup step.
Leave your email now. The scan summary can follow after the first reply; we send the $29 Deep Cleanup step only if review-first storage remains.
Evidence To Capture First
The goal is to distinguish a real disk-full image pull from a missing image, registry error, or Swarm task-state reporting gap.
Measure the node that rejected the task.
Run this on the affected Swarm node, then inspect the task message before deleting images or volumes.
docker service ps --no-trunc <service_name>
docker service inspect <service_name> --format '{{json .UpdateStatus}}'
docker node ps --no-trunc self | grep -Ei 'Rejected|No space|pull|image' || true
docker info --format 'root={{.DockerRootDir}} driver={{.Driver}}'
df -h / /var/lib/docker 2>/dev/null || df -h
df -i / /var/lib/docker 2>/dev/null || df -i
docker system df -v
Safe Decision Order
- Confirm the failing node: Swarm can schedule a task on a different node than the one you are watching.
- Check Docker root, not only
/: the image store can be the boundary that blocks layer writes. - Separate blocks from inodes: a task may fail even when
df -hlooks reasonable if inode pressure is the real limit. - Classify reclaimable data: build cache and unused images are safer than named volumes, bind mounts, or active service state.
Do Not Delete First
- Do not run broad
docker system prune --volumesuntil named volumes and service mounts are identified. - Do not assume Portainer success means image pull success; inspect task
Rejectedmessages. - Do not delete registry credentials, compose files, or Portainer data while investigating a disk-full pull.
- Do not keep retrying the deploy on a full node; it can add partial layers and make the cleanup harder.
Need a safe cleanup order?
Send the issue link, log excerpt, or storage summary first. We reply with the next safe move and offer the $29 Deep Cleanup only if the incident still needs review.