Red de conocimientos sobre prescripción popular - Enciclopedia de Medicina Tradicional China - Resuelva el problema de SpringBoot ejecutándose con una IP registrada incorrecta en Docker.

Resuelva el problema de SpringBoot ejecutándose con una IP registrada incorrecta en Docker.

Durante el desarrollo, a menudo nos encontramos con que después de que la aplicación SpringBoot se inicia con éxito, encontramos que la IP registrada en el centro de registro no es la que queremos. En la depuración y el desarrollo conjuntos reales, a menudo nos encontramos con cómo obtener una IP desconocida de nuestra propia aplicación de inicio local y no podemos conectarnos a esta IP a través de otras máquinas. Después de encontrar la máquina virtual, detenga la tarjeta de red de la máquina virtual y luego obtenga la IP de la LAN local. Por supuesto, este problema también se puede solucionar especificando una IP para cada servicio. Sólo unos pocos casos están bien, pero ¿qué pasa con docenas o cientos de casos?

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: