Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kommunikationsprobleme zwischen zwei Docker-Containern

Sie können localhost nicht verwenden im Container ist es der Container selbst. Daher erhalten Sie immer den Fehler „Verbindung abgelehnt“.

Sie können die folgenden Dinge tun -

  1. Fügen Sie die IP Ihres Hostcomputers in application.properties hinzu Datei Ihrer Spring-Boot-Anwendung. (Nicht empfohlen, da es Docker-Portabilitätslogik bricht)

  2. Falls Sie localhost verwenden möchten verwenden Sie --net=host beim Starten des Containers. (Nicht für die Produktion empfohlen, da keine logische Netzwerkschicht vorhanden ist)

  3. Verwenden Sie --links für die Containerkommunikation mit einem DNS-Namen. (veraltet/veraltet)

  4. Erstellen Sie eine Compose-Datei und rufen Sie Ihre DB aus der Spring Boot-App mit dem Dienstnamen auf, da sie sich im selben Netzwerk befinden und stark miteinander integriert sind. (Empfohlen)

PS – Wann immer Sie mehrere Container zusammen integrieren müssen, entscheiden Sie sich immer für docker-compose version 3+ . Verwenden Sie docker run|build um die Grundlagen zu verstehen und Trocken-/Testläufe durchzuführen.