Docker Container Creation Failure
The Docker daemon failed to create the container's runtime environment using the configured OCI-compliant runtime (e.g., runc, crun). This is a low-level failure that occurs after the image is pulled but before the container process starts.
Common Causes
- Insufficient system resources (memory, user IDs, PIDs).
- Permission issues with the container's root filesystem or runtime binaries.
- A mismatch or corruption in the configured OCI runtime (e.g., runc).
- Conflict with an existing container using the same name or resources.
- Invalid or unsupported configuration in the container's spec (e.g., bind mounts, capabilities).
How to Fix
1 Check Docker Daemon Logs
Inspect the Docker daemon logs for detailed error messages from the OCI runtime, which often provide the root cause.
$ sudo journalctl -u docker --no-pager | tail -50 2 Verify and Free System Resources
Ensure the host has available memory, user IDs (UIDs/GIDs), and process IDs (PIDs). Check limits and remove unused containers.
$ docker ps -a
free -h
cat /proc/sys/kernel/pid_max
docker system prune -a --volumes 3 Restart Docker Service and Runtime
Restarting the Docker daemon can resolve transient runtime state issues and reload the OCI runtime.
$ sudo systemctl restart docker 4 Remove Conflicting Container
If a container with the same name or conflicting resources exists, remove it to allow a new creation.
$ docker rm -f <container_name_or_id> 5 Reinstall or Verify OCI Runtime
Reinstall the OCI runtime package (e.g., runc) to fix potential corruption or version mismatch.
$ # For Ubuntu/Debian
sudo apt-get update && sudo apt-get install --reinstall runc