Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyambung ke Bekas MySQL dari Bekas Lain di Docker?

Bagaimana untuk Menyambung ke Bekas MySQL dari Bekas Lain di Docker?

Susan Sarandon
Susan Sarandonasal
2024-10-28 00:20:02919semak imbas

How to Connect to a MySQL Container from Another Container in Docker?

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!

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