Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk melakukan pencerminan pangkalan data dengan docker

Bagaimana untuk melakukan pencerminan pangkalan data dengan docker

PHPz
PHPzasal
2023-04-26 10:27:391379semak imbas

Docker pada masa ini ialah teknologi kontena paling popular, yang boleh membungkus aplikasi dan kebergantungannya ke dalam bekas bebas dan berjalan dalam persekitaran yang berbeza. Pangkalan data ialah komponen teras aplikasi, dan menjalankan pangkalan data dalam Docker ialah senario yang sangat biasa kerana ia menyediakan cara yang mudah, selamat dan boleh berulang untuk menguji, menggunakan dan menskalakan aplikasi pangkalan data.

Jadi, bagaimana untuk mencipta imej pangkalan data dalam Docker? Langkah-langkah untuk mencipta cermin pangkalan data MySQL diterangkan secara terperinci di bawah.

1. Muat turun imej MySQL rasmi

Imej MySQL rasmi boleh dimuat turun dari Docker Hub Kami boleh menggunakan arahan berikut untuk memuat turun imej MySQL dari Docker Hub:

docker pull mysql/mysql-server

2. Cipta imej MySQL tersuai

Walaupun kami boleh menggunakan imej MySQL rasmi secara langsung, ia mungkin tidak memenuhi keperluan kami, seperti fail konfigurasi, skrip permulaan, sandaran data, dsb. Oleh itu, kita mesti mencipta imej tersuai berdasarkan imej rasmi untuk memenuhi keperluan kita.

1. Cipta Fail Docker

Fail Docker ialah fail teks yang mengandungi satu siri arahan untuk membina imej Docker. Kami menggunakan imej rasmi MySQL sebagai asas, dan kemudian mencipta imej tersuai dengan menambahkan fail konfigurasi, skrip permulaan, sandaran data, dsb.

Dalam contoh ini, kami mencipta Dockerfile dengan kandungan berikut:

FROM mysql/mysql-server

# 安装telnet和net-tools
RUN yum update && yum install -y telnet net-tools

# 添加自定义配置文件
ADD my.cnf /etc/mysql/my.cnf

# 添加初始化脚本
ADD init.sql /docker-entrypoint-initdb.d/

# 添加数据备份
ADD backup.sql /tmp/backup.sql

Penjelasan Dockerfile di atas adalah seperti berikut:

  • FROM mysql/ mysql -server: Gunakan imej rasmi MySQL sebagai imej asas.
  • RUN yum update && yum install -y telnet net-tools: Pasang telnet dan net-tools.
  • TAMBAH my.cnf /etc/mysql/my.cnf: Tambahkan fail konfigurasi tersuai my.cnf ke direktori /etc/mysql/.
  • TAMBAH init.sql /docker-entrypoint-initdb.d/: Tambahkan skrip permulaan init.sql pada direktori /docker-entrypoint-initdb.d/.
  • TAMBAH backup.sql /tmp/backup.sql: Tambahkan backup data backup.sql ke direktori /tmp/.

2. Bina imej

Dalam contoh ini, kami telah menyediakan fail Dockerfile, fail konfigurasi tersuai, skrip permulaan, sandaran data dan sumber lain. Seterusnya, anda perlu melaksanakan arahan berikut dalam direktori di mana fail Dockerfile terletak untuk membina imej:

docker build -t my-mysql:latest .

Antaranya, -t digunakan untuk menamakan imej, dan :latest bermaksud untuk digunakan versi terkini.

3. Jalankan bekas MySQL

Sekarang kami telah berjaya mencipta imej MySQL tersuai, kami akan menjalankan imej dalam bekas dan menetapkan nama kepada bekas:

docker run -d -p 3306:3306 --name my-mysql -v /data/mysql:/var/lib/mysql my-mysql

Antaranya, -d bermaksud menjalankan bekas di latar belakang, -p memetakan port 3306 kontena ke port 3306 hos, dan -v memetakan direktori /data/mysql hos ke /var/lib/mysql bekas directory , my-mysql mewakili nama bekas.

Kini kita boleh menggunakan alat klien MySQL untuk menyambung ke bekas MySQL dan menguji bahawa ia berfungsi dengan baik.

mysql -h 127.0.0.1 -P 3306 -u root -p

4. Kesimpulan

Melalui proses ini, kami telah mempelajari cara mencipta imej MySQL tersuai dalam Docker dan menjalankan imej. Ini menjadikannya lebih mudah untuk menguji, menggunakan dan menskalakan aplikasi pangkalan data. Dalam projek sebenar, kami boleh menambah lebih banyak konfigurasi tersuai dan skrip permulaan seperti yang diperlukan, serta data sandaran dan pemulihan serta fungsi lain.

Atas ialah kandungan terperinci Bagaimana untuk melakukan pencerminan pangkalan data dengan 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