How to debug Docker Compose services?
· Category: Docker
Short answer
Debug Docker Compose services by inspecting logs, running commands inside containers, verifying configurations, and checking resource usage. Use docker compose logs, docker compose exec, and docker compose config.
Steps
- View logs:
docker compose logs -f <service>. - Open a shell:
docker compose exec <service> /bin/sh. - Verify merged config:
docker compose config. - Check service status:
docker compose ps.
Example
docker compose logs -f web
Run a one-off command:
docker compose run --rm web python manage.py migrate
Debug a failing start:
docker compose run --rm --entrypoint /bin/sh web
Tips
- Use
docker compose configto verify environment variable substitution. - Stream logs from all services or filter by service name.
- Use a dedicated debug profile with tools like
curl,netcat, andvim.
Common issues
docker compose execfails if the container is not running; usedocker compose runinstead.- Exit codes from
docker compose upmay be misleading if a dependent service fails first. - Stale volumes or networks can cause configuration drift; prune them if needed.