Es kann keine Verbindung zu einem Go GRPC-Server hergestellt werden, der in einem lokalen Docker-Container ausgeführt wird.
Wenn ein GRPC-Client gegen einen lokal ausgeführten GRPC-Dienst ausgeführt wird, ist dies der Fall Es ist wichtig, den Abhörendpunkt des Servers zu berücksichtigen. Wenn Sie einen Hostnamen oder eine IP-Adresse (in diesem Fall localhost) angeben, lauscht der Server standardmäßig nur auf dieser spezifischen Adresse.
Im Kontext von Docker-Containern lauscht er auf localhost (127.0.0.1). problematisch, da es außerhalb des Containers nicht zugänglich ist. Während Docker möglicherweise Ports auf dem Host-Computer verfügbar macht, überwacht der Server nur 127.0.0.1 innerhalb des Containers.
Um dieses Problem zu beheben, sollte der Überwachungsendpunkt in *:51672 geändert werden, wodurch der Server angewiesen wird, zu überwachen auf allen verfügbaren IP-Adressen innerhalb des Containers. Dadurch kann der Container Datenverkehr empfangen, der vom Host-Computer auf dem offengelegten Port weitergeleitet wird.
Um das Problem zu überprüfen, können die iptables-Regeln mit den folgenden Befehlen untersucht werden:
iptables -n -L iptables -t nat -n -L
Diese Regeln werden von Docker erstellt, um die Portweiterleitung zu implementieren. Indem der Server so konfiguriert wird, dass er alle verfügbaren IP-Adressen überwacht, kann der Client erfolgreich eine Verbindung zum GRPC-Dienst herstellen, der im Docker-Container ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWarum kann mein GRPC-Client keine Verbindung zu meinem Docker-Server herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!