No puede usar localhost dentro del contenedor, es el contenedor mismo. Por lo tanto, siempre obtendrá el error de conexión rechazada.
Puedes hacer las siguientes cosas:
-
Agregue la IP de su máquina host en
application.propertiesarchivo de su aplicación Spring Boot. (No recomendado ya que rompe la lógica de portabilidad de la ventana acoplable) -
En caso de que quieras usar
localhost, utilice--net=hostmientras arranca el contenedor. (No recomendado para producción ya que no existe una capa de red lógica) -
Usar
--linkspara la comunicación del contenedor con un nombre DNS. (obsoleto/heredado) -
Cree un archivo de redacción y llame a su base de datos desde la aplicación Spring Boot con el nombre del servicio, ya que estarán en la misma red y altamente integrados entre sí. (Recomendado)
PD:siempre que necesite integrar varios contenedores, elija docker-compose version 3+ . Usa docker run|build para comprender los fundamentos y realizar ejecuciones de prueba/secado.