Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memelihara Data Pangkalan Data MySQL Apabila Melaksanakan Bekas sebagai Imej?

Bagaimana untuk Memelihara Data Pangkalan Data MySQL Apabila Melaksanakan Bekas sebagai Imej?

Susan Sarandon
Susan Sarandonasal
2024-10-24 11:50:29664semak imbas

How to Preserve MySQL Database Data When Committing a Container as Image?

Menyelesaikan Masalah Data Pangkalan Data Terkompromi dalam Bekas MySQL

Apabila cuba mengimport lambakan SQL ke dalam bekas MySQL dan seterusnya menyerahkan bekas sebagai imej baharu, pengguna mungkin menghadapi isu pangkalan data tidak mengekalkan data yang baru dibuat apabila memulakan bekas dengan imej baharu. Artikel ini menyiasat punca utama dan menyediakan penyelesaian untuk menyelesaikan isu ini.

Latar Belakang

Imej MySQL Docker rasmi menyimpan data dalam jumlah. Ini adalah persediaan yang diingini untuk memastikan kegigihan data melebihi jangka hayat bekas. Walau bagaimanapun, volum data memintas Sistem Fail Kesatuan dan tidak termasuk dalam proses komit imej. Akibatnya, data yang ditambahkan pada pangkalan data semasa masa jalan kontena tidak akan ditunjukkan dalam imej komited.

Penyelesaian

Untuk mengatasi had ini dan melakukan data yang baru ditambah, pengguna boleh mencipta pangkalan MySQL mereka sendiri imej tanpa volum data. Ini melibatkan membina imej tersuai yang merangkumi perisian dan konfigurasi yang diperlukan tetapi tidak termasuk sebarang titik lekap volum.

Panduan Langkah demi Langkah

  1. Bina imej asas MySQL tersuai tanpa volum:
FROM mysql:latest
RUN apt-get update && apt-get install -y mysql-client
  1. Buat pangkalan data MySQL baharu dan import pembuangan SQL:
mysql -uroot -psecret -e 'create database <database_name>;'
mysql -uroot -psecret <database_name> < /mnt/<sql_dump_file>.sql
  1. Komitkan bekas sebagai imej baharu:
docker commit -m "Imported <database_name> SQL dump" <container_id> <new_image_name>:<version>

Faedah Penyelesaian ini

Dengan mencipta imej asas MySQL tersuai tanpa volum, pengguna memperoleh keupayaan untuk:

  • Memastikan data kepada imej dan simpannya walaupun selepas bekas ditamatkan.
  • Pastikan data berterusan sepanjang bekas dimulakan semula dan naik taraf.

Kaveat

Adalah penting untuk ambil perhatian bahawa data ditambahkan pada bekas yang berjalan selepas komit akan hilang apabila bekas itu tidak lagi wujud. Ini kerana data tidak lagi disimpan dalam kelantangan yang berterusan tetapi sebaliknya dalam sistem fail sementara kontena.

Atas ialah kandungan terperinci Bagaimana untuk Memelihara Data Pangkalan Data MySQL Apabila Melaksanakan Bekas sebagai Imej?. 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