Docker and Container Errors
Container runtimes add an entire layer of failure modes that don’t exist with bare-metal services: image pulls, registry auth, daemon-socket access, layered storage, network namespaces, and resource limits. The ten errors below are what you’ll see on Docker / containerd / podman in production.
#61 – Cannot connect to the Docker daemon
Description: Every docker command fails with “Is the docker daemon running?”
Solution: systemctl status docker; journalctl -u docker -n 50; verify socket: ls -l /var/run/docker.sock; user not in docker group: usermod -aG docker $USER + re-login.
#62 – pull access denied
Description: Image not found or auth required.
Solution: docker login REGISTRY; verify image name spelling (docker.io/lib/x vs org/x); for private registries: check token expiry.
#63 – No space left on device (overlay2)
Description: Docker pulls and builds fail because the overlay2 storage driver is out of space.
Solution: docker system df shows usage; docker system prune -a to clean stale images/containers/build cache; for thin-provisioned LVM: extend the pool.
#64 – Container exited with code 137
Description: SIGKILL — usually OOM-killed by container memory limit.
Solution: docker inspect CONT | grep OOMKilled; raise --memory limit; investigate the leak inside.
#65 – Bind for 0.0.0.0:443 failed: port is already allocated
Description: docker run -p fails because something else is bound to the host port.
Solution: ss -tlnp | grep :443; another container or host service has the port; pick a different host port (-p 8443:443).
#66 – Manifest unknown / image not found
Description: docker pull returns “manifest unknown” for what should be a valid image.
Solution: Tag mismatch (:latest vs :1.2); registry doesn’t have that arch; docker manifest inspect IMG to confirm.
#67 – Container in restart loop
Description: Container exits immediately after start and Docker keeps restarting it.
Solution: docker logs --tail 100 CONT shows what made it crash; almost always config error or missing env var. Don’t use --restart=always while debugging.
#68 – Iptables: No chain/target/match by that name
Description: Docker uses iptables for network setup; chain order broken by manual edits or firewalld interaction.
Solution: iptables -L -n; restart docker daemon to recreate chains; on RHEL with firewalld: firewall-cmd --reload.
#69 – Mounts denied: path not exported
Description: docker run -v fails to mount the host path into the container.
Solution: Docker Desktop on macOS/Windows: add path to File Sharing. On Linux: SELinux blocks volume mounts — add :Z to the volume flag.
#70 – Cgroups out of memory limit
Description: Container hit memory cap; processes inside got SIGKILL.
Solution: docker stats CONT shows current use; raise limit with docker update --memory 2g CONT (or in compose).
Conclusion
docker logs --tail 100 CONTis your first reach. The error is almost always there.docker system prune -aregularly — image+layer accretion is silent.- Set
--memoryand--cpuslimits explicitly; don’t let runaway containers eat the host. - Use
:Zon SELinux systems for volume mounts; saves hours of debugging. - Pin image tags (not
:latest) for reproducibility.