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.serviceen 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?