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.properties
fichier 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=host
lors du démarrage du conteneur. (Non recommandé pour la production puisqu'il n'existe aucune couche réseau logique) -
Utilisez
--links
pour 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.