Dengan populariti pengkomputeran awan dan teknologi kontena dalam senario aplikasi, pangkalan data secara beransur-ansur menjadi sebahagian daripada penggunaan kontena. Apabila melaksanakan penggunaan kontena, aplikasi bahasa PHP agak matang, jadi artikel ini menggunakan bahasa PHP untuk meneroka cara melaksanakan penggunaan kontena pangkalan data.
1. Kelebihan penggunaan kontena
Kelebihan utama penggunaan kontena ialah ia boleh membantu pembangun membina, menguji dan menggunakan aplikasi dengan cepat, sambil meningkatkan kemudahalihan aplikasi. Selain itu, penggunaan kontena juga boleh meningkatkan kebolehpercayaan dan kebolehskalaan aplikasi, dan boleh menangani permintaan serentak yang tinggi dengan lebih baik apabila sejumlah besar pengguna mengaksesnya.
2. Senario Aplikasi PHP
Apabila melaksanakan penggunaan bekas pangkalan data, senario aplikasi bahasa PHP adalah agak luas. Ciri bahasa PHP ialah ia adalah bahasa skrip yang ringan, dan ia cekap, berskala, mudah dipelajari dan digunakan. Selain itu, bahasa PHP juga mempunyai banyak sambungan pihak ketiga dan rangka kerja matang serta rantai alat, yang boleh memudahkan akses dan pemprosesan data.
3. Proses merealisasikan penggunaan pangkalan data dalam kontena
Fail Docker ialah kunci untuk merealisasikan penggunaan dalam kontena tentukan proses binaan kontena. Apabila mentakrifkan fail Dockerfile, anda perlu menjelaskan imej asas pangkalan data, memasang kebergantungan pangkalan data yang sepadan dan fail konfigurasi di dalamnya, dan membuka port yang sepadan. Kod sampel adalah seperti berikut:
FROM mysql:5.7 # 添加配置文件 ADD my.cnf /etc/mysql/my.cnf # 开放3306端口 EXPOSE 3306
Pernyataan FROM menentukan imej asas sebagai versi mysql:5.7, dan pernyataan ADD menambah fail konfigurasi my.cnf tersuai ke laluan /etc/mysql/my.cnf dalam bekas , pernyataan EXPOSE membuka port 3306.
Selepas mentakrifkan Dockerfile, anda boleh membina imej pangkalan data melalui arahan docker. Perintahnya adalah seperti berikut:
docker build -t mysql:5.7 .
Parameter -t menentukan nama dan versi imej, dan titik menunjukkan fail Dockerfile dalam direktori semasa.
Selepas melengkapkan pembinaan imej pangkalan data, ia boleh disimpan dan digunakan. Perintahnya adalah seperti berikut:
docker run --name mysql -p 3306:3306 -d mysql:5.7
Parameter --name menentukan nama bekas, parameter -p menentukan pemetaan antara port dalaman kontena dan port hos, dan parameter -d menunjukkan menjalankan bekas di latar belakang.
Setelah selesai menjalankan bekas pangkalan data, anda perlu mengkonfigurasi aplikasi PHP untuk menyambung ke bekas pangkalan data. Dalam program PHP, anda perlu menentukan nama hos, port, nama pengguna, kata laluan dan maklumat lain pangkalan data. Kod sampel adalah seperti berikut:
<?php // 数据库配置参数 $db_host = 'localhost'; $db_port = 3306; $db_name = 'test'; $db_user = 'root'; $db_pass = '123456'; // 数据库连接 try { $pdo = new PDO("mysql:host=$db_host;port=$db_port;dbname=$db_name", $db_user, $db_pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "数据库连接成功!"; } catch(PDOException $e) { echo "数据库连接失败: " . $e->getMessage(); }
Dalam kod di atas, parameter $db_host perlu dinyatakan sebagai alamat IP mesin hos. Dalam penggunaan sebenar, jika anda menggunakan Docker Compose untuk mengurus bekas, anda boleh menentukan nama bekas pangkalan data dan pemetaan port dalam fail ini untuk mengelakkan daripada menentukan parameter sambungan secara manual.
4. Ringkasan
Artikel ini memperkenalkan kaedah pelaksanaan penggunaan bekas pangkalan data berdasarkan bahasa PHP Tumpuan adalah pada menggunakan fail Dockerfile untuk mentakrifkan proses pembinaan imej, dan menggunakan arahan docker untuk membina dan jalankan pangkalan data. Walaupun penggunaan kontena boleh meningkatkan kemudahalihan dan kebolehskalaan aplikasi, ia juga memerlukan pemilihan dan konfigurasi yang munasabah berdasarkan keadaan sebenar dalam senario aplikasi sebenar.
Atas ialah kandungan terperinci Kaedah PHP untuk melaksanakan penggunaan kontena pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!