Rumah > Artikel > pembangunan bahagian belakang > Mengapa Saya Tidak Boleh Mengakses Port Docker Terdedah Saya? - Menyelesaikan masalah 'Recv kegagalan: Tetapan semula sambungan oleh rakan sebaya' dalam Aplikasi Go
Kegagalan Pendedahan Pelabuhan Docker: Menyelesaikan "Kegagalan Recv: Tetapan semula sambungan oleh rakan sebaya"
Apabila cuba menjalankan aplikasi Go dalam bekas Docker , anda menghadapi ralat "Recv failure: Connection reset by peer" semasa mengakses port yang terdedah. Walaupun telah mengkonfigurasi pemetaan port dengan betul dalam fail docker-compose.yaml, aplikasi itu tetap tidak dapat dicapai daripada sumber luaran.
Punca isu ini terletak pada cara aplikasi Go mendengar permintaan masuk. Secara lalai, aplikasi Go terikat pada antara muka gelung balik setempat ("localhost") apabila menggunakan sintaks http.ListenAndServe("localhost:8081", tiada).
Penyelesaian:
Dalam bekas Docker, aplikasi Go harus mendengar pada semua antara muka yang tersedia dan bukannya mengehadkan dirinya kepada antara muka gelung balik. Untuk mencapai matlamat ini, ubah suai kod berikut dalam aplikasi Go:
// Original code http.ListenAndServe("localhost:8081", nil) // Updated code http.ListenAndServe(":8081", nil)
Dengan mengalih keluar awalan "localhost", aplikasi kini menerima sambungan daripada kedua-dua antara muka gelung balik dan sumber luaran. Pengubahsuaian ini memastikan aplikasi boleh diakses selepas mendedahkan port dalam fail docker-compose.yaml.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengakses Port Docker Terdedah Saya? - Menyelesaikan masalah 'Recv kegagalan: Tetapan semula sambungan oleh rakan sebaya' dalam Aplikasi Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!