DEV Community

Cover image for The 10 Docker Errors That Waste the Most Time (and the One-Line Fix)
James Joyner for DevOps AI ToolKit

Posted on

The 10 Docker Errors That Waste the Most Time (and the One-Line Fix)

Docker is fantastic right up until it throws one of its greasy, context-free error messages at you and you lose twenty minutes to a thing that has a one-line fix. I've been collecting these — the exact strings, and the first thing to check for each. Here are the ten that eat the most time.

1. Cannot connect to the Docker daemon at unix:///var/run/docker.sock

The engine isn't reachable. In order of likelihood: the daemon isn't running (systemctl status docker), you're not in the docker group (sudo usermod -aG docker $USER, then log out and back in), or you're pointing at the wrong DOCKER_HOST. It's almost never Docker being broken — it's Docker not being up or you not being allowed.

Full guide →

2. no space left on device

Docker hoards. Dangling images, stopped containers, unused volumes and build cache pile up on the Docker root disk. docker system df shows you where it went; docker system prune -a --volumes reclaims it (read what it'll delete first). If df -h says you have space but Docker disagrees, you may be out of inodes.

Full guide →

3. Bind for 0.0.0.0:8080 failed: port is already allocated

Something already owns that port — often a container you forgot was running. docker ps to find it, or ss -tlnp | grep 8080 for a non-Docker process. Stop the holder or map to a different host port.

Full guide →

4. pull access denied ... repository does not exist or may require 'docker login'

Three flavors: the image name/tag is wrong, it's a private registry and you're not authenticated (docker login), or you've hit Docker Hub's anonymous pull rate limit. The error says "does not exist OR requires login" for a reason — check both.

Full guide →

5. exec format error

You built the image for one CPU architecture and ran it on another — the classic Apple Silicon (arm64) build landing on an amd64 server. Build multi-arch with docker buildx, or pin --platform to match your target.

6. OCI runtime create failed

A low-level container-start failure. The useful part is always after the colon — a missing binary, a bad mount, a permissions problem. Read the full message; OCI runtime create failed itself tells you nothing.

Full guide →

7. executable file not found in $PATH

Your CMD or ENTRYPOINT points at a binary the image doesn't have — often because a slim/distroless base doesn't ship a shell, or you assumed a tool was installed. Check exec-form vs shell-form and confirm the binary actually exists in the final layer.

Full guide →

8. TLS handshake timeout

Usually not a cert problem — it's a network path issue (a proxy, MTU, or firewall) between you and the registry, masquerading as TLS. Test raw connectivity before you touch certificates.

Full guide →

9. failed to compute cache key: ... not found (COPY/ADD)

Your Dockerfile is trying to COPY a file that isn't in the build context — either the path is wrong, or .dockerignore is excluding it. Remember paths are relative to the context root, not the Dockerfile.

10. Conflict. The container name "/x" is already in use

A container with that name already exists (running or stopped). docker rm x to remove the old one, or use --rm / a fresh name. Common in CI where a previous run didn't clean up.


The pattern

Nearly every Docker error puts the useful information after the colon and a generic category before it. OCI runtime create failed is the category; the cause is the clause you skimmed past. Train yourself to read to the end of the line before you start googling.

I keep complete guides for all of these — and about eighty more Docker errors — each with the diagnostic workflow, a worked root-cause example, and the prevention checklist:

Which Docker error has personally cost you the most hours? Genuinely curious which of these tops the list for other people.

Top comments (0)