Menyambung ke Bekas MySQL daripada Bekas Lain
Anda telah menyediakan bekas Docker yang menjalankan MySQL dan port 3306 terdedah, tetapi bagaimana boleh anda mengakses pangkalan data itu daripada bekas lain?
Menggunakan Alamat IP
Pada mulanya, anda cuba menyambung menggunakan alamat IP bekas MySQL (172.17.0.2). Walaupun ini berfungsi, ia tidak sesuai kerana alamat IP boleh berubah.
Rangkaian Ditentukan Pengguna
Pendekatan yang lebih baik ialah menggunakan rangkaian yang ditentukan pengguna untuk menyambungkan bekas. Anda boleh mencipta rangkaian dan melampirkan kedua-dua bekas MySQL dan PHP padanya.
docker network create my_network
Memautkan Bekas
Jalankan kedua-dua bekas pada rangkaian yang sama, menyediakan rangkaian nama menggunakan bendera --network:
docker run -d --name php_container --network my_network my_php_image docker run -d --name mysql_container --network my_network my_mysql_image
Dalam bekas pada rangkaian itu, anda boleh menyelesaikan nama kontena dan menyambung menggunakan nama hos. Contohnya, daripada bekas PHP, anda boleh menyambung ke MySQL menggunakan:
$mysqli = new mysqli("mysql_container", "mattia", "prova", "prova");
Kesimpulan
Rangkaian yang ditentukan pengguna menyediakan cara yang lebih mantap dan fleksibel untuk menyambung bekas dalam Docker. Menggunakan nama kontena sebagai nama hos memudahkan akses dan menghapuskan keperluan untuk bergantung pada alamat IP.
Atas ialah kandungan terperinci Bagaimana untuk Menyambung ke Bekas MySQL dari Bekas Lain di Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!