Cuando un contenedor falla o se queda bloqueado, conviene mirar primero sus logs y reiniciar solo el servicio afectado, no toda la aplicación.
Ver los últimos logs
Desde el directorio donde está el compose.yml, lista los servicios si no recuerdas el nombre exacto:
docker compose ps
Después consulta solo el servicio que te interesa. Por ejemplo, para ver las últimas 100 líneas de web:
docker compose logs --tail 100 web
Si quieres seguir la salida en directo:
docker compose logs -f web
Y si el problema acaba de ocurrir, puedes limitar la búsqueda por tiempo:
docker compose logs --since 10m web
Reiniciar solo ese servicio
Si el servicio necesita reiniciarse, hazlo de forma acotada:
docker compose restart web
Así evitas parar otros servicios del mismo proyecto, como una base de datos o un proxy, salvo que realmente sea necesario.
Comprueba después que vuelve a quedar levantado:
docker compose ps web docker compose logs --tail 50 web
Nota sobre variables en `compose.yml`
Si escribes comandos de shell dentro del compose.yml y necesitas que el contenedor reciba un símbolo $, escápalo como $$. Por ejemplo:
services:
logger:
image: busybox
command: sh -c 'echo "PID $$"'
Docker Compose interpreta variables antes de arrancar el contenedor. Escapar el dólar evita sustituciones inesperadas.
Resumen rápido
# ver servicios docker compose ps # últimos logs de un servicio docker compose logs --tail 100 web # logs recientes docker compose logs --since 10m web # reiniciar solo ese servicio docker compose restart web # verificar docker compose ps web
