Resuelva el problema de SpringBoot ejecutándose con una IP registrada incorrecta en Docker.
La razón de este problema es que hay varias tarjetas de red (como tarjetas de red virtuales) en la máquina actual y SpringBoot no puede obtener la IP correcta al obtener la IP. En el entorno de producción real, el servidor tiene varias tarjetas de red, por lo que SpringBoot solo puede elegir una IP al iniciar. ¿Se puede solucionar este problema con una configuración sencilla? La respuesta es sí, SpringBoot viene con esta función.
SpringBoot proporciona tres métodos de configuración, que pueden usarse solos o combinados.
Al utilizar Docker para ejecutar el servicio SpringBoot, al registrar el servicio, puede ignorar algunas interfaces de red con nombres específicos. Los nombres de las interfaces de red que se ignorarán se pueden configurar mediante expresiones regulares. La siguiente configuración ignora la interfaz de red denominada docker0 y todas las interfaces de red cuyos nombres comienzan con veth:
Por el contrario, también puede utilizar expresiones regulares para configurar solo direcciones de interfaz de red específicas. El siguiente ejemplo de configuración solo utiliza direcciones IP que comienzan con 192.168 y 10.0, no se utilizarán otras direcciones.
Si el servicio SpringBoot solo se usa dentro de la LAN y no se llamará externamente, se puede configurar a través del sitio local, como se muestra a continuación: