← Las 34 trampasTrampa P-041 · severidad media

Docker dice «Up» pero el panel no responde: intentó escuchar en una IP que aún no existía

Qué pasó

Un panel web aparecía como Up 20 hours en docker ps, pero no respondía. El log lo explicaba: al arrancar, intentó escuchar en la dirección de Tailscale antes de que Tailscale la hubiera asignado y recibió EADDRNOTAVAIL.

El proceso principal se cayó, pero un vigilante de ficheros que lo envolvía siguió vivo, así que Docker consideró el contenedor sano y nunca lo reinició.

Cómo evitarlo

  • Que el programa reintente escuchar cada pocos segundos si falla con ese error.
  • O que el servicio espere a Tailscale antes de arrancar (After=tailscaled.service en systemd).
  • Y para comprobar que algo funciona, no basta docker ps. Mira las tres capas:
docker ps | grep mi-panel          # ¿el contenedor existe?
ss -ltnp | grep :5555              # ¿alguien escucha en el puerto?
curl -fsS http://IP:5555/health    # ¿responde de verdad?