Vous ne pouvez pas utiliser localhost à l'intérieur du conteneur, c'est le conteneur lui-même. Par conséquent, vous obtiendrez toujours l'erreur de connexion refusée.
Vous pouvez faire les choses ci-dessous -
-
Ajoutez l'IP de votre machine hôte dans
application.propertiesfichier de votre application de démarrage de printemps. (Non recommandé car cela brise la logique de portabilité Docker) -
Si vous souhaitez utiliser
localhost, utilisez--net=hostlors du démarrage du conteneur. (Non recommandé pour la production puisqu'il n'existe aucune couche réseau logique) -
Utilisez
--linkspour la communication de conteneur avec un nom DNS. (obsolète/hérité) -
Créez un fichier de composition et appelez votre base de données à partir de l'application Spring Boot avec le nom du service, car ils seront sur le même réseau et hautement intégrés les uns aux autres. (Recommandé)
PS - Chaque fois que vous avez besoin d'intégrer plusieurs conteneurs ensemble, optez toujours pour docker-compose version 3+ . Utilisez docker run|build pour comprendre les principes fondamentaux et effectuer des essais à vide.