Docker 포트 노출 문제: "Recv failure: Connection Reset by Peer" 해결
Docker 환경에서 문제가 발생했습니다. 컨테이너에서 실행 중인 gRPC 서비스를 노출하려고 시도하는 동안. 포트 8081에서 수신 대기하는 서비스가 "Recv failure: Connection Reset by Peer" 오류와 함께 연결 수신에 실패합니다.
Docker Compose 구성이 포트 8081을 컨테이너의 내부 포트에 올바르게 매핑하지만 문제가 발생하는 이유는 다음과 같습니다. gRPC 서버가 수신 주소에 바인딩하는 방식입니다. 기본적으로 "http.ListenAndServe("localhost:8081", nil)"를 사용할 때 서버는 루프백 인터페이스(127.0.0.1)에서만 수신 대기합니다. 즉, 컨테이너 자체 내에서만 연결을 허용할 수 있습니다.
이 문제를 해결하려면 모든 인터페이스에서 수신하도록 Go 애플리케이션을 수정하면 됩니다. 대신 다음 코드를 사용하면 됩니다.
http.ListenAndServe("0.0.0.0:8081", nil)
"0.0.0.0"을 지정하면 서버가 모든 네트워크 인터페이스에 바인딩되어 루프백과 외부 연결을 모두 허용할 수 있습니다. 이렇게 하면 컨테이너 외부의 요청이 gRPC 서비스에 도달할 수 있습니다.
추가 참고 사항:
위 내용은 Docker에서 내 gRPC 서비스에 연결할 수 없는 이유: 'Recv failure: Connection Reset by Peer'?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!