Dalam proses menggunakan bekas Docker, ia selalunya melibatkan pemautan ke pangkalan data pada hos. Walau bagaimanapun, kadangkala apabila cuba menyambung ke pangkalan data tempatan, sambungan gagal. Artikel ini akan menerangkan sebab ini mungkin berlaku dan menyediakan beberapa penyelesaian.
1. Penerangan Masalah
Dalam proses menggunakan bekas Docker, kadangkala perlu memautkan aplikasi dalam bekas dengan pangkalan data pada hos. Dalam sesetengah kes, kami boleh menyambung melalui alamat IP bekas dan alamat IP hos, tetapi kadangkala kaedah ini tidak berjaya disambungkan. Sebagai contoh, apabila menggunakan bekas Docker untuk memasang pangkalan data seperti MySQL, aplikasi dalam bekas tidak boleh memaut ke pangkalan data MySQL pada hos.
2. Punca masalah
1 Hos dan rangkaian kontena tidak boleh beroperasi
Jika hos dan kontena menggunakan rangkaian yang berbeza, komunikasi antara keduanya tidak boleh dikendalikan daripada. Dalam kes ini, bekas tidak boleh memaut ke pangkalan data pada hos.
2. Alamat IP hos berubah
Apabila alamat IP hos berubah, alamat yang memaut ke pangkalan data tempatan dalam bekas juga perlu diubah suai dengan sewajarnya. Jika tidak, bekas tidak akan dapat memaut ke pangkalan data hos semasa.
3. Isu kebenaran pangkalan data
Dalam sesetengah kes, pangkalan data pada hos tidak mempunyai kebenaran untuk membuka pautan jauh dan hanya membenarkan pautan setempat. Pada masa ini, aplikasi dalam bekas tidak boleh menyambung ke pangkalan data.
3. Penyelesaian
1 Gunakan rangkaian hos Docker
Apabila membuat bekas Docker, anda boleh menggunakan --net=host untuk menentukan rangkaian yang digunakan oleh hos. . Dengan cara ini, aplikasi dalam bekas dan pangkalan data pada hos berada pada rangkaian yang sama dan boleh berkomunikasi antara satu sama lain.
2. Gunakan rangkaian jambatan Docker
Menggunakan rangkaian jambatan Docker boleh menyambungkan rangkaian yang digunakan oleh bekas dan hos antara satu sama lain. Apabila membuat bekas Docker, gunakan parameter --link untuk menentukan sambungan ke pangkalan data setempat.
3. Ubah suai alamat IP hos
Jika alamat IP hos berubah, alamat yang menyambung ke pangkalan data tempatan dalam bekas juga perlu diubah suai. Cara paling mudah ialah menggunakan alias hos dalam bekas untuk menyambung ke pangkalan data pada hos dan bukannya menggunakan alamat IP hos. Anda boleh menggunakan nama hos atau localhost dan bukannya alamat IP hos untuk menyambung.
4. Ubah suai kebenaran pangkalan data
Jika terdapat masalah dengan kebenaran pangkalan data, ia boleh diselesaikan dengan mengubah suai kebenaran pangkalan data. Dalam pangkalan data MySQL, anda boleh menggunakan pernyataan GRANT untuk memberikan kebenaran kepada sambungan jauh.
4. Ringkasan
Apabila menggunakan bekas Docker untuk memaut ke pangkalan data pada hos, pautan mungkin gagal. Keadaan ini mungkin disebabkan oleh rangkaian hos dan kontena tidak berkomunikasi, alamat IP hos berubah atau isu kebenaran pangkalan data. Masalah ini boleh diselesaikan dengan menggunakan rangkaian hos dan rangkaian jambatan Docker, mengubah suai alamat IP hos dan mengubah suai kebenaran pangkalan data.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika bekas docker tidak dapat menyambung ke pangkalan data tempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!