Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menyambungkan Pangkalan Data MongoDB Tempatan Saya kepada Aplikasi Go yang Berjalan dalam Bekas Docker?

Bagaimanakah Saya Boleh Menyambungkan Pangkalan Data MongoDB Tempatan Saya kepada Aplikasi Go yang Berjalan dalam Bekas Docker?

Susan Sarandon
Susan Sarandonasal
2024-11-28 11:46:11511semak imbas

How Can I Connect My Local MongoDB Database to a Go Application Running in a Docker Container?

Menyambungkan Pangkalan Data MongoDB Tempatan ke Docker

Dalam bidang pembangunan perisian, adalah perkara biasa untuk menghadapi cabaran untuk mengintegrasikan perkhidmatan tempatan dengan bekas Docker . Dalam kes khusus ini, anda menghadapi masalah menyambungkan pangkalan data MongoDB anda, yang berjalan secara setempat, kepada aplikasi Go anda yang dijalankan dalam bekas Docker.

Isunya terletak pada pengasingan persekitaran Docker. Apabila anda menjalankan aplikasi anda dalam Docker, ia beroperasi dalam persekitaran maya dengan konfigurasi rangkaiannya sendiri. Ini bermakna pangkalan data MongoDB tempatan anda tidak boleh diakses terus daripada rangkaian kontena.

Untuk menyelesaikan masalah ini, Docker menyediakan alamat IP khas, host.docker.internal, yang memetakan ke alamat IP mesin hos dalam bekas rangkaian. Dengan menggunakan alamat IP ini dalam rentetan sambungan MongoDB anda, anda boleh merapatkan jurang komunikasi antara bekas dan pangkalan data setempat.

Berikut ialah rentetan sambungan yang diubah suai yang akan menangani ralat "CreateSession: no reachable servers":

mongodb://host.docker.internal:27017/database

Dengan menggunakan host.docker.internal sebagai nama hos, aplikasi anda akan dapat mewujudkan sambungan ke pangkalan data MongoDB tempatan anda walaupun apabila berjalan dalam bekas Docker.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyambungkan Pangkalan Data MongoDB Tempatan Saya kepada Aplikasi Go yang Berjalan dalam Bekas Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn