Scenario
You are maintaining a microservices application that suddenly stops working — containers fail to start or behave erratically. This could be due to container runtime issues such as Docker Engine, containerd, or runc failures.
Symptoms
- Container exits immediately after starting
- Container state shows "Exited" or "CrashLoopBackOff"
- Container is running but unresponsive or erroring
- Abnormal resource usage (high CPU/memory)
- Docker daemon logs showing errors
Diagnosis
1. Check Container Logs
docker logs --tail 100 <container_id>
Look for application-level errors. If the container never started, use docker logs <container_id> to capture the last output.
2. Inspect Container State
docker inspect <container_id> | jq '.[0].State'
Examine exit code, restart count, and error details.
3. Monitor Live Events
docker events --filter 'container=<container_id>' --since '1m'
Watch container lifecycle events (start, die, OOM, etc.).
4. Check Resource Usage
docker stats --no-stream <container_id>
Review CPU, memory, and I/O metrics.
5. Inspect Underlying Runtime State
Use crictl to communicate directly with containerd:
crictl ps -a
crictl inspect <container_id>
Get detailed info about the container managed by kubelet.
6. Check Docker Daemon
journalctl -u docker.service --since '1 hour ago' | grep ERROR
Or view Docker log file: /var/log/docker.log.
Diagnostic Commands Summary
| Command | Purpose |
|---|---|
docker logs |
View application logs |
docker inspect |
Get container config and state |
docker events |
Monitor real-time events |
docker stats |
View resource usage |
crictl ps |
List containerd-managed containers |
journalctl -u docker |
Check Docker system logs |
Risk Controls
- Avoid destructive commands like
docker rm -fordocker system prunedirectly in production. - Reproduce the issue in an isolated test environment.
- Backup container volumes and important data before making changes.
- Have a rollback plan ready before starting diagnostics.
Rollback Strategies
- Restart the container: Try
docker restart <container_id>. - Rollback image version: Pull the previous known-good image tag:
bash docker pull myapp:v1.0.0 docker stop <container_id> docker rm <container_id> docker run -d --name myapp_container myapp:v1.0.0 - Use orchestration rollback: e.g.,
kubectl rollout undo deployment/myappon Kubernetes. - Restore container volumes: If using bind mounts, restore data from backup.
Verification
- Confirm container is running:
docker psshows status "Up". - Check health endpoint:
curl http://localhost:8080/healthreturns 200. - Review application logs for no errors.
- Run functional tests to ensure service is healthy.
When to Submit an OpsGlobal Ticket
- Issue persists after initial troubleshooting.
- Kernel-level errors (OOM kill, kernel panic) appear.
- Container runtime components (containerd, runc) fail affecting multiple containers.
- Deep performance analysis or root cause analysis is needed.
- Production environment experiencing sustained outage — requires 24/7 expert support.
OpsGlobal provides remote DevOps/SRE support to quickly triage and resolve complex runtime issues, minimizing downtime.
Use cases
Useful for teams handling DevOps issues and needing a clear troubleshooting and delivery workflow.
Problem background
This article provides a deep dive into troubleshooting Docker container runtime issues, covering common scenarios, symptoms, diagnostic commands, risk controls, rollback strategies, and verification steps to help DevOps/SRE engineers resolve problems efficiently.
Troubleshooting steps
Confirm impact and recent changes, collect logs, configuration and metrics, then apply fixes from low to high risk.
Command examples
Replace sample resource names with real values and store passwords, tokens and keys in environment variables.
Risks
Before production changes, confirm backups, access boundaries, change windows and rollback paths.
Rollback plan
Keep original configuration and release versions; roll back config, images or database changes if metrics degrade.
Deliverables
Root-cause notes, key commands, remediation steps, verification results and follow-up recommendations.
Need help with a similar technical issue?
If your servers, Kubernetes, Docker, CI/CD, databases or monitoring systems have similar issues, submit logs and config files for remote diagnosis.