Mysql
 sql >> Base de données >  >> RDS >> Mysql

Problème de communication entre deux conteneurs Docker

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 -

  1. 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)

  2. 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)

  3. Utilisez --links pour la communication de conteneur avec un nom DNS. (obsolète/hérité)

  4. 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.