Tidak dapat menyambung ke pelayan GRPC Go yang dijalankan dalam bekas Docker tempatan
Apabila menjalankan klien GRPC terhadap perkhidmatan GRPC yang dijalankan secara setempat, ia adalah penting untuk mempertimbangkan titik akhir mendengar pelayan. Secara lalai, apabila menentukan nama hos atau alamat IP (dalam kes ini, localhost), pelayan hanya akan mendengar pada alamat khusus tersebut.
Dalam konteks bekas Docker, mendengar pada localhost (127.0.0.1) ialah bermasalah kerana ia tidak boleh diakses di luar bekas. Walaupun Docker mungkin mendedahkan port pada mesin hos, pelayan hanya akan mendengar pada 127.0.0.1 dalam bekas.
Untuk menyelesaikan isu ini, titik akhir mendengar harus ditukar kepada *:51672, mengarahkan pelayan untuk mendengar pada semua alamat IP yang tersedia dalam bekas. Ini membolehkan kontena menerima trafik yang dimajukan daripada mesin hos pada port terdedah.
Untuk mengesahkan masalah, peraturan iptables boleh diperiksa menggunakan arahan berikut:
iptables -n -L iptables -t nat -n -L
Peraturan ini dicipta oleh Docker untuk melaksanakan pemajuan port. Dengan mengkonfigurasi pelayan untuk mendengar semua alamat IP yang tersedia, pelanggan boleh berjaya menyambung ke perkhidmatan GRPC yang berjalan dalam bekas Docker.
Atas ialah kandungan terperinci Mengapa Klien GRPC Saya Tidak Boleh Menyambung ke Pelayan Dockerized Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!